java switch 跳转到超过 1 种情况

标签 java switch-statement

我有一个 Switch 案例,其中调用了超过 1 个案例。 我正在查看案例中的两个 int-konstants 是否相同,或者案例是否被多次调用(超出了我的预期),但事实并非如此。

所以我输入了一些“syso”:

  System.out.println("Switch");
  System.out.println(key.ID);
  switch (key.ID) {
  case Key.ID_ROTATE:
     // do stuff
     break;
  case Key.ID_LEFT:
     // do stuff
     break;
  case Key.ID_HIDE:
     System.out.println(Key.ID_HIDE);
     // do stuff
  case Key.ID_PAUSE:
     System.out.println(Key.ID_PAUSE);
     // do stuff
     break;
  case Key.ID_RESTART:
     // do stuff
     break;
  }
  System.out.println("Switch end");

输出是:

Switch

6

6

7

Switch end

所以 switch 的值为 6 并且 java 正在调用 case 6 和 7。 我的问题是为什么?

最佳答案

您在 ID_HIDE 的 case 末尾缺少 break 语句:

case Key.ID_HIDE:
    System.out.println(Key.ID_HIDE);
    // do stuff
    break; // Was missing in the original code

关于java switch 跳转到超过 1 种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32220215/

相关文章:

java - 如何用 Jackson 序列化 LocalDateTime?

java - 运行standalone.bat时,wildfly在设置java属性时停止

java - 解释 eclipse .classpath 文件。 'kind="con "' and ' export ="true"是什么意思?

java - REST 请求通常是 JSON 输出还是其他?

r - K-Skip-N-Gram : generalization of for-loops in R

c++ - 开关盒 : declaration-with-initialization & declaration-and-then-assignment

java - 基于 MD5 的加密器/文件锁

java - 循环中的 Switch 语句重复次数未知

ruby - 如何使用不等式的 ruby​​ "case ... when "?

php - 开关盒 <音频>