For a serious reoly, I think the expression “If they have eggs, buy two” is redundant. If they didn’t have eggs, the kid just can’t and won’t buy any eggs.
I think the proper command would be, “Please buy 1 bottle of milk and two eggs.” That way, the kid won’t be confused and it’s still a proper valid command.
Unfortunately though, the sentence is ambiguous even to non-programmers. It is unknown whether the if condition applies to
- buying two eggs (buy two eggs)
- buying two bottles of milk (buy two bottles instead)
- or buying a bottle of milk (buy another bottle)
Simply because they didn’t specify which to buy.
For a non-serious reply,
cart.add(supermarket.takeProduct(ProductType.milk, 1));
if (supermarket.getProduct(type: ProductType.eggs).length > 0) {
cart.add(supermarket.takeProduct(Product type.milk, 2));
}
cart.checkout();
The kid should have bought a total of 3 bottles.
Exactly!
In case it helps anyone, I made a (rather frugal) tool called kmus for keeping a list of songs you like to have on your phone, and then syncing that list of songs to your phone with automatic lossy compression. It’s extremely customizable. Admittedly I made it for my own use but I’m sure anyone can modify it for their own purposes.