java 类型““的开头非法;“预期[已关闭]

m4pnthwp  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(139)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
我有一个项目,我在我的班级工作,要求你使用开关的情况下,使用用户的腰围测量,以获得他们的裤子的大小。然而,当我开始的情况下,开关的情况下,它给我错误的第13行。

public class MySizes {

    public static void main(String[] args) throws IOException {
        int waistMeasurement; //creates variable
        Scanner in = new Scanner(System.in); //allows user input

        System.out.println("Hello, customer. In order to find pants in your size I need to know your waist measurement. \nWhat is your waist measurement(enter in centimetres)?");
        waistMeasurement = in.nextInt(); //reads the user input and stores it in the waistMeasurement vairiable

        System.out.println("Your waist measurement is " + waistMeasurement + "cm. I will look at our sizing chart to see what size you'll wear.");

        switch (waistMeasurement) {
            case (<66):
                System.out.println("Your pants size is small.");
                break;
        }
    }
}

我试着在这个网站上搜索,读到我可能漏掉了一个花括号,但是我检查了三遍,看起来不像是我......我能想到的另一件事是,也许我不知道如何正确地将变量与数字66进行比较......但即使我试着这样做,它也不能转换为布尔值,所以我不知道该怎么做。顺便说一句,我对这种编程语言不是很了解,所以如果可能的话(取决于我做错了什么,它可能不是),我希望有一个更简单的解释,我可以做什么来修复它。
我期待开关箱没有错误,但它有一个错误,我不知道什么可能导致它。

e0bqpujr

e0bqpujr1#

case不能以这种方式包含条件。您可能需要使用条件。

switch (waistMeasurement) {
   case (<66):
       System.out.println("Your pants size is small.");
       break;
}

变成:

if (waistMeasurement < 66) {
    System.out.println("Your pants size is small.");
}

作为旁注,break用于交换机中以防止失败,这样只执行一个用例,而不执行任何后续用例。有时失败可能是所需的行为。
因为交换机中只有一个case,所以break是无关紧要的。

vngu2lb8

vngu2lb82#

你不能在开关盒内使用这种条件。
开关仅接受固定值。
您可以编写如下代码:

...
if(waistMeasurement < 66) {
    System.out.println("Your pants size is small.");
}
...

而且如果有更多的条件要检查,可以使用else if、else或者合并逻辑运算符&&(and),||(或)。
希望我的回答能解决你的问题。

相关问题