java - 带有字符串错误输出的 Switch 语句

标签 java arrays switch-statement break

我遇到了这个基本问题,其中 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/

相关文章:

javascript - 请检查我是否正确地获取并编写了 switch 语句?

java - 为什么我在这里需要括号? Java : "if (true) int i=0;"

java - 如何改进此搜索算法运行时?

javascript - 修改 for 循环

javascript - Vue - 循环遍历对象数组,并在单击时突出显示所选项目

int = 0 上的 php switch 语句错误

c++ - switch 语句中的局部作用域——我们在哪里中断?

java - Android应用程序无法将数据写入Firebase数据库

java - 使用字母修剪进行搜索时,迭代深化代码不会增加深度

我可以在函数内取消引用传递给函数的局部数组吗?