当前位置: 首页 > 知识库问答 >
问题:

While循环在用户输入后重复两次

马泓
2023-03-14

下面的代码循环了两次。第一个while循环要求用户输入(以做出选择)。我把选择默认值设置为“n”,使它变得更简单。

因此,它命中if语句并开始第2个while循环。现在它要求用户进行另一个选择。用户只能输入“a”,因为其他任何东西都会出现错误陷阱。用户输入“a”并得到添加一个数字的提示(变量num=0)。用户输入一个数字。

使用更多信息更新的代码

while (true) {              // 1st while loop
choice="N";
   if (choice.equalsIgnoreCase("N")) {
       while (true) {                      // 2nd while loop
          System.out.println("|-|-| Add Number [A] Go Back [B]");
          System.out.println("NUMBER: "+num);
          System.out.print("Choice: ");
          choice = c.nextLine();

          if (choice.equalsIgnoreCase("A")){
             System.out.print("Add: ");
             num = (c.nextInt() + num);
             System.out.println("");
          }
          else if (choice.equalsIgnoreCase("B")){
             break;
          }
          else {
             System.out.println("ERROR 19: Invalid response");
             System.out.println("");
          }
       }
   }
}

我已经尝试使用不同的变量进行选择。它不起作用。我想我可能需要在第2个while循环下面尝试catch(在提示用户输入数字之前),但这只是一个想法。我的问题是,为什么会发生这种情况?如果可能的话,我该如何修复它?

共有1个答案

狄飞鹏
2023-03-14

在代码中while(true)将无限期地循环。或者将条件从always true更改为条件为true(在while循环或for循环中使用if条件)。或者当您认为循环应该停止时,使用中断、返回和继续的混合方式。

 类似资料:
  • 我试图通过使用Kryonet进行通信来创建一个基本的IRC。我遇到的问题是,在我的代码中,我不能安全地使用允许用户键入和发送消息的main while循环,因为Scanner给出了一个错误,并且似乎跳过了对nextLine()的调用。我想做的是让扫描仪在继续之前等待用户输入。 更准确地说,程序将首先在行的开头放一个“:”,然后在用户按enter键后获取用户键入的任何内容,然后将其发送到服务器。我得

  • 我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!

  • 首先,感谢你阅读我的帖子并帮助我。 我试图编程,我定义了一个随机数,程序猜测这个随机数,然后,根据我说猜测太高或太低,程序再次猜测。 再次感谢!

  • 我试图在PlayerOne类中放入一个while循环,这样就可以通过用户输入来选择玩家的职业。我不知道怎么让它起作用。你能给我一个建议或提示吗?谢谢!(我想你不需要玩家类或者主类,所以我就让他们置身事外)

  • 问题内容: 我有一个无限的while循环,我想在用户按下某个键时退出。通常,我用来获取用户的响应。但是,我不必等待响应。我想要这样的东西: 这应该很简单,但是我似乎无法弄清楚。我倾向于使用线程的解决方案,但我不想这样做。我该怎么做? 问题答案: 我认为您可以使用msvcrt做得更好: 可悲的是,仍然是特定于Windows的。

  • 我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢