这个问题在这里已经有答案了:
java do while循环在满足条件后保持循环(3个答案)
上个月关门了。
我的代码的问题是,即使输入一个元音,它也不会停止循环,当我尝试将代码传输到在线编译器时,它会说
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at Main.main(Main.java:12)
不过,在名为javan-ide的应用程序中,它可以正常工作。
代码如下:
Scanner in = new Scanner(System.in);
char letter;
do{
letter = in.next().charAt(0); //the line 12 is this.
System.out.println(letter);
}while(letter != 'A' || letter != 'e' || letter != 'i' || letter != 'o' || letter != 'u');
附言:这不完全是在线编译器,这个网站叫做CodeChum,你可以在那里学习java,而且里面有编译器。这就是我的教训。
3条答案
按热度按时间dm7nw8vv1#
mnemlml82#
这个问题“即使你输入了一个元音也不会停止循环”你说,这是因为你需要改变你的条件从或到和。例如,当您输入
apple
这个letter != 'a'
是假的,但第二个条件是letter != 'e'
如果为真,则循环将继续。所以你需要把它改成&&
(和)。还有
letter != 'A'
不同于letter != 'a'
所以我把输入改成小写:waxmsbnn3#
你的循环条件是循环while(letter!='一个'或字母!='e'等)
因此,如果用户输入“a”,第一个条件为false,而第二个条件为true,则循环继续。换句话说,用户所能输入的任何东西都不会停止循环。
尝试将or条件改为&&(and)。