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