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

时间:2014-08-18 17:01:33

标签: java if-statement add assignment-operator assign

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

请输入一件物品。进口一瓶香水 请输入进口香水瓶的价格: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));
}

}

2 个答案:

答案 0 :(得分:2)

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

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

Read more about operators here.

答案 1 :(得分:0)

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

  • &安培;&安培; (逻辑AND)
  • || (逻辑OR)
如果b1 && b2trueb1,则

b2true - 否则为false

如果b1 || b2true或两者都是b1,则

b2true - 否则为false

在您的情况下,如果您想在输入文本中包含"music""bottle"时执行相同的代码块,您可以执行以下操作:

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