我拥有的作品是汉堡的最终总数,但是我似乎无法保持循环,因此如果我选择1,请抓住汉堡并要求我再次选择,再添加更多总数。完成后,它将退出并显示最终总数,如果我按2,则会显示其他数字,然后在循环中再次询问我。
我不知道要在switch语句中添加什么以使其继续运行。根据我的尝试,我倾向于得到以下语句:“无法打开boolean类型的值。仅允许使用可转换的int值,字符串或枚举变量”
根据我到目前为止的情况,我被困住了。
boolean valid = true;
do {
System.out.println("Select an Option: ");
int userInput = scnr.nextInt();
switch (userInput <=2) {
case 1:
burgerOrder++;
subTotalBurgers = burgerPrice * burgerOrder;
finalSubTotal = burgerPrice * tax;
finalBurgerTotal = burgerPrice + tax;
break;
case 2:
System.out.println("2. Exit");
valid = true;
default:
System.out.println("Sorry");
continue;
}
}while(!valid);
System.out.println("BurgerOrder is " + finalBurgerTotal);
答案 0 :(得分:3)
switch (userInput)
。 <= 2
使其成为boolean
表达式,由于您有default
的情况,因此没有必要。您的循环要求valid
的初始值为false
(因为这是您的循环条件)。而且,您错过了break
中的case 2
。
boolean valid = false;
do {
switch (userInput) {
case 1:
burgerOrder++;
subTotalBurgers = burgerPrice * burgerOrder;
finalSubTotal = burgerPrice * tax;
finalBurgerTotal = burgerPrice + tax;
break;
case 2:
System.out.println("2. Exit");
valid = true;
break;
default:
System.out.println("Sorry");
continue;
}
} while (!valid);
答案 1 :(得分:-1)
您的continue
语句告诉程序中断循环。只需删除它即可。
对于它的价值,您的case 2
也属于“默认值”;您可能打算在break
之后使用case 2
声明。
无论使用什么作为表达式switch
的表达式,都将评估其大小写-userInput <= 2
对于值1和2似乎不太可能。