带有错误输出的switch语句

Chandresh Mishra:

我遇到了这个基本问题,其中将开关大小写与字符串一起使用。

在案例之间不使用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);
      }
user7294900:

break;末尾没有a case "mon"因此值也会增加2

您没想到的流程:

0    -1   -1   +1+2  +2 = 3
^     ^    ^   ^     ^
init sat  sun  mon  wed 

如下所示添加中断将导致输出1

case "mon":
  wd++;
  break;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章