我遇到了这个基本问题,其中将开关大小写与字符串一起使用。
在案例之间不使用Break语句,但是为什么即使不匹配case字符串也要在所有案例中使用break语句?
所以我很好奇为什么输出是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);
}
break;
末尾没有a ,case "mon"
因此值也会增加2
您没想到的流程:
0 -1 -1 +1+2 +2 = 3
^ ^ ^ ^ ^
init sat sun mon wed
如下所示添加中断将导致输出1
case "mon":
wd++;
break;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句