【问题标题】:Breaking a do..while loop with a keypress用按键打破 do..while 循环
【发布时间】:2023-04-01 00:03:02
【问题描述】:

我只想在用户按下 y 键并在此代码中使用 do while 循环时继续程序,例如while('o'!=='y')。我也试过这个:

public class clac {
     do {     
         System.out.println("\nwant to try again\n press y/n");
         String o;
         o=sc.next();
     } while(!o.contentEquals("y"));
}

【问题讨论】:

  • @HovercraftFullOfEels 的复制是完全正确的。这里的问题很简单,如果用户不输入新行,则不会将任何内容转发到System.in。原始模式解决了这个问题。
  • @Ben 取决于 OP 想要什么。
  • 我会投票关闭“不清楚你在问什么”,因为 OP 没有指定代码有什么问题(编译错误?对按下的键没有反应?等等)

标签: java


【解决方案1】:

如果您想对“y”输入提出问题,请使用以下代码:

   public static void main(String r[]) throws IOException {
        Scanner sc = new Scanner(System.in);
        String o;
        do {     
             System.out.println("\nwant to try again\n press y/n");
             o=sc.next();
         } while(!o.contentEquals("y"));
    }

希望它是您正在寻找的。​​p>

【讨论】:

  • 小注:应该是!o.equals("y") 按下y时循环应该结束,而不是继续。
  • 如果你解释你从 OP 的代码中改变了什么以及为什么,答案会更有用。
  • 我刚刚声明了 String o;在 do {} 语句之上,仅此而已。没有更多的变化。 @Vipul 已在 do 语句中将其声明为局部变量,并且在 while 语句中未识别。所以我在 do 语句上面声明了它,这样它也可以被 while 语句识别。
  • 更新了该更改的答案。您可以看到除了放置 String o 之外没有进行任何更改; over do 语句。
  • @Vipul 如果它解决了您的问题,请告诉我。
猜你喜欢
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
相关资源
最近更新 更多