我遇到了这个基本问题,其中 switch case 与字符串一起使用。
break 语句不在 case 之间使用,但为什么即使它不匹配 case 字符串,它也会适用于所有 case?
所以我很想知道 为什么输出的是3而不是1?
public static void main(String [] args)
{
int wd=0;
String days[]={"sun","mon","wed","sat"};
for(String s:days)
{
switch (s)
{
case "sat":
case "sun":
wd-=1;
break;
case "mon":
wd++;
case "wed":
wd+=2;
}
}
System.out.println(wd);
}
最佳答案
case "mon"
末尾没有 break;
,因此值也增加 2
你没想到的是,流程:
0 -1 -1 +1+2 +2 = 3
^ ^ ^ ^ ^
init sat sun mon wed
如下添加中断将导致输出 1
case "mon":
wd++;
break;
关于java - 带有字符串错误输出的 Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514434/