Java 用按键打破do..while循环

Java 用按键打破do..while循环,java,Java,我只想在用户按下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")); } 如果您想询问有关“y”

我只想在用户按下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"));
}

如果您想询问有关“y”输入的问题,请使用以下代码:


希望这就是您要寻找的。

由@HovercraftFullOfEels复制的副本可能完全正确。这里的问题很简单,如果用户没有输入新行,则不会将任何内容转发到系统中。原始模式解决了这个问题。@Ben取决于OP想要什么。我会投票以“不清楚你在问什么”作为结束,因为OP没有指定代码有什么问题(编译错误?没有对按键做出反应?等等)。小注:应该是
!o、 等于(“y”)
循环应该在按下y时结束,而不是继续。如果您解释一下您对OP的代码做了哪些更改以及为什么更改,那么答案会更有用。我刚刚声明了字符串o;在do{}语句之上,仅此而已。没有更多的变化@Vipul已在do语句中将其声明为局部变量,但在while语句中无法识别它。所以我在do语句上面声明了它,以便while语句也能识别它。更新了该更改的答案。您可以看到,除了放置字符串o,没有进行任何更改;结束声明。@Vipul请务必让我知道它是否解决了您的问题。
   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"));
    }