Java 如果满足多个条件,如何使用If语句计算数字?

Java 如果满足多个条件,如何使用If语句计算数字?,java,if-statement,add,assignment-operator,assign,Java,If Statement,Add,Assignment Operator,Assign,我已经用我所做的更改编辑了下面的代码。这是我得到的输出 请输入一个项目。进口香水瓶 请输入进口香水的价格:47.50 是否要继续添加项目?(Y型)表示是,而(N型)表示否 您的购物车包含以下含税物品{进口巧克力盒=10.00,进口香水瓶=67.50} 67.50 巧克力盒应为10.50,进口瓶应为54.65。我使用了debug,看到我使用的totalprice变量保持10.50,但看起来它变回了原来的值。另外,不是读取已经 if (item.contains("imported") &

我已经用我所做的更改编辑了下面的代码。这是我得到的输出

请输入一个项目。进口香水瓶 请输入进口香水的价格:47.50 是否要继续添加项目?(Y型)表示是,而(N型)表示否 您的购物车包含以下含税物品{进口巧克力盒=10.00,进口香水瓶=67.50} 67.50

巧克力盒应为10.50,进口瓶应为54.65。我使用了debug,看到我使用的totalprice变量保持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));
}
公共类销售税
{
公共静态void main(字符串[]args)
{
//为购物车输入项目
HashMap购物车=新建HashMap();
HashMap shoppingcart=新建HashMap();
//创建扫描仪
扫描仪输入=新扫描仪(System.in);
//变数
半焦完成;
//布尔商品;
双倍总价=0.00;
双重征税价格;
//选择列表中的项目。
做
{  
系统输出打印(“请输入项目”);
String item=input.nextLine();
系统输出打印(“请输入“+项目+”的价格:”;
字符串price=input.nextLine();
double price 1=double.parseDouble(价格);
总价+=价格1;
//System.out.println(String.format(“%.2f”,totalprice));
String price2=String.valueOf(price1);
购物车(商品,价格2);
//确定项目是否有附加税
如果(项目包含(“音乐”))
{
price1=Double.parseDouble(价格);
taxprice=价格1*.10;
总价=(总价+税价);
//System.out.println(String.format(“%.2f”,totalprice));
String newprice2=String.valueOf(String.format(“%.2f”,price1*1.10));
shoppingcart.put(项目,新价格2);
}
else if(项目包含(“导入”))
{
price1=Double.parseDouble(价格);
taxprice=价格1*.0.05;
总价=(总价+税价);
//System.out.println(String.format(“%.2f”,totalprice));
String newprice2=String.valueOf(String.format(“%.2f”,totalprice));
shoppingcart.put(项目,新价格2);
}
如果(项目包含(“进口”)和项目包含(“瓶子”))
{
price1=Double.parseDouble(价格);
taxprice=价格1*(.05+0.10);
总价=(总价+税价);
//System.out.println(String.format(“%.2f”,totalprice));
String newprice2=String.valueOf(String.format(“%.2f”,totalprice));
shoppingcart.put(项目,新价格2);
}
如果(项目包含(“瓶子”))
{
price1=Double.parseDouble(价格);
taxprice=价格1*.10;
总价=(价格1+税费价格);
//System.out.println(String.format(“%.2f”,totalprice));
String newprice2=String.valueOf(String.format(“%.2f”,price1*1.10));
shoppingcart.put(项目,新价格2);
}
其他的
{
购物车。放置(物品、价格);
}
System.out.print(“是否继续添加项目?(Y型表示是,N型表示否)”;
done=input.nextLine().charAt(0);
}while(Character.toUpperCase(done)='Y');
System.out.println(“您的购物车包含以下含税的at项目”+shoppingcart);//+String.format(“%.2f”,totalprice));
System.out.println(String.format(“%.2f”,totalprice));
}

}

使用
和&
操作符。它被称为逻辑AND运算符

//if item contains both "imported" and "bottle"
if (item.contains("imported") && item.contains("bottle")){
    //code
}

每当使用任何类型的
if
语句时,都会向其传递一个布尔变量。Java中有两个逻辑运算符,它们接受两个布尔值并输出一个布尔值:

  • &&(逻辑与)
  • ||(逻辑或)
如果
b1
b2
true
,则
b1和
b2
true
——否则为
false

如果
b1
b2
或两者都是
true
,则
b2
true
——否则为
false

在您的情况下,如果要在输入文本中包含
“music”
“瓶子”
时执行相同的代码块,您可以执行以下操作:

if(items.contains("music") || items.contains("bottle")) {
    //modify prices
}

使用
&&
运算符!如果
,请不要使用
else。在循环中单独处理每个项目。哦,欢迎使用StackOverflow:DAs边栏:使用
双精度
进行涉及金钱的算术不是一个好主意,因为浮点算术并不精确。您应该考虑改用
BigDecimal
。它被称为逻辑and运算符。@clcto谢谢。更新。