【问题标题】:Java beginner: Switch statement does not give expected outputJava初学者:switch语句没有给出预期的输出
【发布时间】:2015-03-06 13:22:57
【问题描述】:
    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';
        }

这是一个作业的代码摘录。

根据调试器,Suit 在 switch 语句之后被设置为“C”,并且在整个双循环中它永远不会改变。我对 switch 语句有什么误解?

【问题讨论】:

  • 添加中断;每种情况并默认结束

标签: java eclipse switch-statement


【解决方案1】:
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

【讨论】:

    【解决方案2】:

    您需要在每个块的末尾添加一个 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 语句结束一个块,你的 switch 将继续到下一个块并执行该代码(如果情况有效)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 2019-09-07
      • 1970-01-01
      相关资源
      最近更新 更多