使用continue的第二个switch语句上的不可达语句

时间:2018-11-30 15:33:52

标签: java

因此,我在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";
            }
        }
}

1 个答案:

答案 0 :(得分:3)

因为您在第一个continue;中使用了default中的switch并且没有break,所以continue将一直有效,因此您需要添加{{1 }}

break