Java初学者:Switch语句没有给出预期的输出

时间:2015-03-06 13:22:58

标签: java eclipse switch-statement

    char suit = 'S';
    int n = 2;


    for (int k= 0; k<4; k++){
    for (int i = 0; i < n; i++){

        switch (k) {
        case 0: suit = 'S';
        case 1: suit = 'H';
        case 2: suit = 'D';
        case 3: suit = 'C';
        }

这是作业的代码摘录。

套装设为&#39; C&#39;在switch语句之后,根据调试器,它在整个双循环中永远不会改变。我对switch语句有什么误解?

2 个答案:

答案 0 :(得分:7)

switch (k) {
        case 0: 
          suit = 'S'; 
          break;
        case 1: 
          suit = 'H';
          break;
        case 2: 
          suit = 'D';
          break;
        case 3: 
          suit = 'C';
          break;
        default:
          break;
        }

没有break;您输入每个案例块,直到达到第一个break

答案 1 :(得分:0)

你需要在每个块的末尾添加一个break语句,如下所示:

switch (k) {
        case 0: 
          suit = 'S'; 
          break;
        case 1: 
          suit = 'H';
          break;
        case 2: 
          suit = 'D';
          break;
        case 3: 
          suit = 'C';
          break;
        default:
          break;
        }

如果你没有用break语句结束一个块,你的开关将继续进入下一个块并执行该代码(如果大小写有效)。

可以找到可能需要此行为的用法here