因此,我在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";
}
}
}
答案 0 :(得分:3)
因为您在第一个continue;
中使用了default
中的switch
并且没有break
,所以continue
将一直有效,因此您需要添加{{1 }}
break