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