【发布时间】:2019-07-01 06:58:43
【问题描述】:
我有一个案例要研究我有这个问题让我对 Switch 语句感到困惑我只需要了解为什么我不需要此代码的解决方案。
此开关比较数组的值
它执行切换,然后转到与当前值相同的情况之一, 但是这种情况是空的,没有中断,也没有代码 所以它会跳转并执行下一个 case 的代码,该代码与当前 case 的值不同。
如果我包含了一个中断,它会正常工作并且不会执行下一个案例代码,但我需要了解为什么它会以错误值执行下一个案例。
public class HelloWorld{
public static void main(String []args){
int wd=0;
String days[]={"sun","mon","wed","sat"};
for(String s:days){
switch(s){
// current value is sat it will execute case "sun"
case "sat":
case "sun":
/*
*after going through all array values it will execute this value's code
*when the current value is sat
*/
wd -= 1;
break;
case "mon":
wd -= 1;
break;
case "wed":
wd+=2;
}
}
System.out.print(wd);
}
}
我预计输出为 0,因为 wd=-1-1+2=0 实际 = -1,因为它的执行案例再次“太阳”
【问题讨论】:
-
因为 switch 语句就是这样设计的。您可以将其解读为“如果字符串是 sat 或 sun,则 ...”。
-
感谢 fuzious 回答了我的问题
标签: java switch-statement case