我已根据我所做的更改编辑了下面的代码。这是我得到的输出。
请输入一件物品。进口一瓶香水 请输入进口香水瓶的价格:47.50 您想继续添加商品吗? (类型Y)表示是和(类型N)表示否 您的购物车中包含以下税项{进口巧克力盒= 10.00,进口香水瓶= 67.50} 67.50
巧克力盒应为10.50,进口瓶应为54.65。我使用调试,看到我使用的总价格变量保持10.50,但看起来它变回来了。而且,而不是阅读具有
的循环 if (item.contains("imported") && item.contains("bottle"))
它读取
else if (item.contains("imported"))
第一。我的完整代码如下。
public class SalesTax
{
public static void main(String[] args)
{
// Input items for shopping cart
HashMap<String, String> cart = new HashMap<String, String>();
HashMap<String, String> shoppingcart = new HashMap<String, String>();
// Create a Scanner
Scanner input = new Scanner(System.in);
// variables
char done;
//boolean goods;
double totalprice = 0.00;
double taxprice;
// Pick items for list.
do
{
System.out.print("Please enter an item.");
String item = input.nextLine();
System.out.print("Please enter the price for "+ item + ": ");
String price = input.nextLine();
double price1 = Double.parseDouble(price);
totalprice += price1;
//System.out.println(String.format("%.2f",totalprice));
String price2 = String.valueOf(price1);
cart.put(item, price2);
//determine if item will have additional tax
if (item.contains("music"))
{
price1 = Double.parseDouble(price);
taxprice = price1 * .10;
totalprice = (totalprice + taxprice);
//System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", price1 * 1.10));
shoppingcart.put(item,newprice2);
}
else if (item.contains("imported"))
{
price1 = Double.parseDouble(price);
taxprice = price1 * .05;
totalprice = (totalprice + taxprice);
//System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", totalprice));
shoppingcart.put(item,newprice2);
}
if (item.contains("imported") && item.contains("bottle"))
{
price1 = Double.parseDouble(price);
taxprice = price1 * (.05 + .10);
totalprice = (totalprice + taxprice);
//System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", totalprice));
shoppingcart.put(item,newprice2);
}
else if(item.contains("bottle"))
{
price1 = Double.parseDouble(price);
taxprice = price1 * .10;
totalprice = (price1 + taxprice);
//System.out.println(String.format("%.2f",totalprice));
String newprice2 = String.valueOf(String.format("%.2f", price1 * 1.10));
shoppingcart.put(item,newprice2);
}
else
{
shoppingcart.put(item, price);
}
System.out.print("Would you like to continue to add items? (Type Y) for Yes and (Type N) for No.");
done = input.nextLine().charAt(0);
} while(Character.toUpperCase(done) == 'Y');
System.out.println("Your cart contains the following at items with tax" + shoppingcart); //+ String.format("%.2f", totalprice));
System.out.println(String.format("%.2f",totalprice));
}
}
答案 0 :(得分:2)
使用&&
运算符。它被称为 逻辑AND运算符 。
//if item contains both "imported" and "bottle"
if (item.contains("imported") && item.contains("bottle")){
//code
}
答案 1 :(得分:0)
每当使用任何类型的if
语句时,都会向其传递一个布尔变量。 Java中有两个逻辑运算符,它们使用两个布尔值并输出一个布尔值:
b1 && b2
和true
为b1
,则 b2
为true
- 否则为false
。
b1 || b2
或true
或两者都是b1
,则 b2
为true
- 否则为false
。
在您的情况下,如果您想在输入文本中包含"music"
或"bottle"
时执行相同的代码块,您可以执行以下操作:
if(items.contains("music") || items.contains("bottle")) {
//modify prices
}