【问题标题】:How would I get a while loop to terminate when the user inputs "no"当用户输入“否”时,我将如何终止 while 循环
【发布时间】:2015-12-25 01:59:04
【问题描述】:

我有这个用于二十一点课程的 while 循环:

while (playerSum < 21) {
  System.out.println("Would you like another card?");
  String input;
  System.out.flush();
  input = in.readLine();
  if (input.equalsIgnoreCase("yes")){
    int card3;
    Random r3 = new Random();
    card3 = r3.nextInt(11 - 2 + 1) + 2;
    switch (card3) {
      case 2: System.out.println("You were dealt a Two"); break;
      case 3: System.out.println("You were dealt a Three"); break;
      case 4: System.out.println("You were dealt a Four"); break;
      case 5: System.out.println("You were dealt a Five"); break;
      case 6: System.out.println("You were dealt a Six"); break;
      case 7: System.out.println("You were dealt a Seven"); break;
      case 8: System.out.println("You were dealt a Eight"); break;
      case 9: System.out.println("You were dealt a Nine"); break;
      case 10: System.out.println("You were dealt a Ten"); break;
      case 11: System.out.println("You were dealt a Ace"); break;
    }
    playerSum += card3;
  }
}

当用户询问他是否想要另一张卡时输入“否”,我希望循环结束。目前,如果我输入除“是”以外的任何内容,它将继续询问“您想要另一张卡吗?”。我理解为什么会发生这种情况,但我不知道如何解决它。提前致谢。

【问题讨论】:

  • 我建议添加else if input.equalsIgnoreCase("no")) break;

标签: string while-loop switch-statement terminate


【解决方案1】:

你可以简单地通过添加来解决这个问题

break;

它看起来像

if (no) { break;} 

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    在 if 语句的末尾添加 else 并跳出循环。

    if (input.equalsIgnoreCase("yes")){
        int card3;
        Random r3 = new Random();
        card3 = r3.nextInt(11 - 2 + 1) + 2;
        switch (card3) {
          case 2: System.out.println("You were dealt a Two"); break;
          case 3: System.out.println("You were dealt a Three"); break;
          case 4: System.out.println("You were dealt a Four"); break;
          case 5: System.out.println("You were dealt a Five"); break;
          case 6: System.out.println("You were dealt a Six"); break;
          case 7: System.out.println("You were dealt a Seven"); break;
          case 8: System.out.println("You were dealt a Eight"); break;
          case 9: System.out.println("You were dealt a Nine"); break;
          case 10: System.out.println("You were dealt a Ten"); break;
          case 11: System.out.println("You were dealt a Ace"); break;
        }
        playerSum += card3;
      } else {
    break;
    }
    

    注意:当用户输入不同于“yes”的任何内容时,这将跳出循环。如果您想在否时突破,请使用else if

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 2020-05-25
      • 2022-07-18
      • 2013-11-16
      相关资源
      最近更新 更多