Java 使用continue在第二个switch语句上无法访问语句

Java 使用continue在第二个switch语句上无法访问语句,java,Java,因此,我在for循环中做了两个switch语句,第一个语句有一个默认值,如果预期的情况都没有发生,那么它将继续,因此将转到for循环中的下一个调用。但是,当我创建第二个switch语句时,它声明它是不可访问的。我的理解是,只有当前一个开关中的情况变为真时,开关情况才是不可访问的,有时情况并非如此。下面是代码 for (int i=1; i < dataSize; i++) { if (!(formatter.formatCellValue(findTitleCont

因此,我在for循环中做了两个switch语句,第一个语句有一个默认值,如果预期的情况都没有发生,那么它将继续,因此将转到for循环中的下一个调用。但是,当我创建第二个switch语句时,它声明它是不可访问的。我的理解是,只有当前一个开关中的情况变为真时,开关情况才是不可访问的,有时情况并非如此。下面是代码

for (int i=1; i < dataSize; i++)
{
            if (!(formatter.formatCellValue(findTitleContents(tempSpreadsheet,"Screen ID",i)).isEmpty()))
            {

                switch (formatter.formatCellValue(findTitleContents(tempSpreadsheet,"Masking(TB/SM)",i)))
                {
                    case "SM":  tempScreen.getTreeValue().remove(ScreenStatus.StatusFlag.TB);
                    case "TB":  tempScreen.getTreeValue().add(ScreenStatus.StatusFlag.TB);
                    default :   returnMessage += "Incorrect masking value for row: " + i + "\n, skipping";
                                continue;
                }
                //Unreachable statement
                switch (formatter.formatCellValue(findTitleContents(tempSpreadsheet,"3D?(Y/N)",i)))
                {
                    case "Y": tempScreen.getTreeValue().add(ScreenStatus.StatusFlag.IS3D);
                }

                screenList.add(tempScreen);
                tempScreen = new Screen();
            }
            else
            {
                logger.info("Skipping row: {}, no ID identified",i);
                returnMessage += "Skipping row: " + i +", no ID identified\n";
            }
        }
}
for(int i=1;i
因为您使用了
继续开关的
默认值
中的code>没有
中断
,因此
继续
将始终有效,您需要添加
中断

switch (formatter.formatCellValue(findTitleContents(tempSpreadsheet,"Masking(TB/SM)",i)))
{
    case "SM":  tempScreen.getTreeValue().remove(ScreenStatus.StatusFlag.TB);
     break;
    case "TB":  tempScreen.getTreeValue().add(ScreenStatus.StatusFlag.TB);
       break;
    default :   returnMessage += "Incorrect masking value for row: " + i + "\n, skipping";
                continue;
}

//Unreachable statement
switch (formatter.formatCellValue(findTitleContents(tempSpreadsheet,"3D?(Y/N)",i)))
{
    case "Y": tempScreen.getTreeValue().add(ScreenStatus.StatusFlag.IS3D);
}

您的案例中缺少break语句。