我将使用什么表达式来保留在该switch语句中?

时间:2019-07-04 02:11:51

标签: java

我拥有的作品是汉堡的最终总数,但是我似乎无法保持循环,因此如果我选择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);


2 个答案:

答案 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似乎不太可能。

相关问题