如果满足多个条件,如何使用 If 语句计算数字?
Posted
技术标签:
【中文标题】如果满足多个条件,如何使用 If 语句计算数字?【英文标题】:How do I calculate numbers with If statement if more than one condition is met? 【发布时间】:2014-10-11 16:00:27 【问题描述】:我在下面用我所做的更改编辑了我的代码。这是我得到的输出。
请输入项目。进口香水瓶 请输入进口香水瓶价格:47.50 是否要继续添加项目? (Y 型)表示是,(N 型)表示 No.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));
【问题讨论】:
使用&&
运算符!
不要使用else if
。
在循环中分别处理每个项目。
哦,欢迎来到 ***:D
作为补充:使用double
进行涉及金钱的算术并不是一个好主意,因为浮点算术并不精确。您应该考虑改用BigDecimal
。 ***.com/questions/6320209/…
【参考方案1】:
使用&&
运算符。它称为逻辑与运算符。
//if item contains both "imported" and "bottle"
if (item.contains("imported") && item.contains("bottle"))
//code
Read more about operators here.
【讨论】:
称为逻辑和运算符。 @clcto 谢谢。已更新。【参考方案2】:每当您使用任何类型的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
【讨论】:
以上是关于如果满足多个条件,如何使用 If 语句计算数字?的主要内容,如果未能解决你的问题,请参考以下文章
excel函数:计算是不是满足计算值,满足直接计算,如不满足则返回一个固定值?