我有一个 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/