使用 java 中的 'if' 语句计算披萨价格



我试图让Java代码与用户通信。

该代码是关于计算披萨价格的,假设披萨价格是最终的整数并且不会改变。 唯一影响价格的是客户想要的披萨附加组件(番茄、蘑菇、切达干酪(。 我尝试创建代码,涵盖客户使用"if"语句选择的每个选项, 但我认为有更简单的方法可以做到这一点。 (我希望程序仅计算附加组件名称的价格。

例如,客户选择蘑菇和番茄,因此披萨价格将是披萨价格 + 番茄价格 + 蘑菇价格。

有没有更简单的方法来解决它? 或者我应该用 if/else 语句涵盖客户选择的每个选项?

public static void main(String[] args){
    Scanner s= new Scanner(System.in);
    final int pizzaPrice= 12;
    int Mushrooms = 2;
    int Tomato= 2;
    int Corn = 2;
    int Olives = 2;
    int CheddarCheese=3;
    int bulgaritCheese=3;
    int yellowCheese= 3;
    String cheapAddOns ="Mushrooms , Tomato, Corn, Olives";
    String expensiveAddOns = "Cheddar cheese , Bulgarit cheese , Yellow cheese";
    System.out.println("Please enter first AddOns(Mushrooms , Tomato , Corn, Olives): ");
    cheapAddOns=s.next();
    System.out.println("Please enter second AddOns (Cheddar cheese , Bulgarit cheese ,Yellow cheese)");
    expensiveAddOns=s.next();
    if( cheapAddOns== "Mushrooms" || expensiveAddOns=="Cheddar cheese"  ) {
        System.out.println("Your Pizza price is: $" + pizzaPrice + Mushrooms + CheddarCheese );
    }
    else if (cheapAddOns=="Tomato" || expensiveAddOns=="Bulgarit cheese") {
        System.out.println("Your Pizza price is: $" +pizzaPrice+ Tomato + bulgaritCheese);
    }
}

首先,当你命名变量时,不要以大写字母开头 int mushrooms,而不是int Mushrooms。 第二件事,当您比较字符串时==运算符将不起作用。您必须使用 stringName.equals() .在您的情况下,它看起来像:

cheapAddOns = s.next();
if(cheapAddOns.equals("tomato") || cheapAddOns.equals("mushrooms") || ...){
   //this way you can get one if for all cheap addons;
   pizzaPrice += 2; //read below to undrstand why i would add price this way
}

对昂贵的插件进行相同的检查。
当你启动cheapAddOnsexpensiveAddOns时你所做的是不正确的,我的意思是你用 start 变量启动它们,接下来你从标准输入中读取它们。启动它们,没有值:

String cheapAddOns;
String expensiveAddOns;

对于此示例,您不必使用 final int,最好将其作为普通整数启动,如果任何语句为 true,则添加到此值。它看起来像这样:

int pizzaPrice = 12;
int cheapAddonPrice = 2;
int expensiveAddonPrice = 3;
if(anyStatement){
   pizzaPrice += 2; //2 for cheap, 3 for expensiv addon
}
System.out.println("Your pizza costs: $" + pizzaPrice) 

仅当所有便宜的插件花费 2 美元并且所有昂贵的插件花费 3 美元时,它才有效。如果每个插件都有另一个价格,您将需要更多 if 语句来计算价格。 但是,根据需要在任意数量的语句中计算价格并打印一次(直到您只打印价格(没有插件列表(。 你
在这里犯了很多简单的错误,所以我认为你刚刚开始你的编程冒险。不要学习坏兔子,试着每天改进你的代码。

如果所有便宜的附加组件都有相同的价格,一种方法可能是:

String cheapAddOns = "Mushrooms, Tomato, ...";
int cheapPrices = 2;
System.out.println("Please enter first AddOns(Mushrooms , Tomato , Corn, Olives): ");
String cheap = s.next();
int price = pizzaPrice;
if ( cheapAddOns.indexOf(cheap) >= 0 ) {
   price += cheapPrice;
}

然后使用昂贵的插件重复代码。 请注意,在调用 s.next(( 获取用户的下一个输入之前,您需要使用 CR。

最新更新