Java 什么';switch case语句有什么问题?

Java 什么';switch case语句有什么问题?,java,android,Java,Android,我不知道为什么eclipse用红色的波形标记switch case语句,在标记“{”上显示语法错误,在该标记之后应显示SwitchLabels我尝试了下面发布的两个代码,收到了相同的投诉 代码_1 代码_2 开关(Test.h1.size()){ int size=Test.h1.size(); 案例大小==1: 打破 案例大小==2: 对于(int i=1;i要解决代码1中的问题,只需删除行int size=Test.h1.size(); 对于代码2,您应该知道,在Java中,您不能在开关案例

我不知道为什么eclipse用红色的波形标记
switch case
语句,在标记“{”上显示
语法错误,在该标记之后应显示SwitchLabels
我尝试了下面发布的两个代码,收到了相同的投诉

代码_1

代码_2

开关(Test.h1.size()){
int size=Test.h1.size();
案例大小==1:
打破
案例大小==2:

对于(int i=1;i要解决代码1中的问题,只需删除行
int size=Test.h1.size();


对于代码2,您应该知道,在Java中,您不能在开关案例中使用布尔表达式。

所有代码都需要在案例中。您阅读了文档吗

试试这个:

int size = Test.h1.size();

switch (size) {
    case 1:
        break;

    case 2:
        ....;

}

为什么要切换一个变量,然后使案例与另一个变量相对应?您正在尝试在开关内部、案例外部执行代码。请将
int size
位移到
开关之前。
switch (Test.h1.size()) {
    int size = Test.h1.size();

    case size == 1:
        break;

    case size == 2:
    for (int i=1; i<=Test.h1.size()-1; i++) {
        for (int j=i+1; j<=Test.h1.size(); j++) {
            System.out.println( Test.h1.get(i)+"+"+Test.h1.get(j)+"= "+((Test.h1.get(i))+(Test.h1.get(j))) );
        }
    }
        break;
    }
int size = Test.h1.size();

switch (size) {
    case 1:
        break;

    case 2:
        ....;

}