如果用户输入元音,如何打印辅音字母并停止循环?

oknwwptz  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(299)

这个问题在这里已经有答案了

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,而且里面有编译器。这就是我的教训。

dm7nw8vv

dm7nw8vv1#

Scanner in = new Scanner(System.in);

    char letter;
    letter = in.next().charAt(0);

    while(letter != 'A' && letter != 'E' && letter != 'I' && letter != 'O' && letter != 'U'&&letter != 'a' && letter != 'e' && letter != 'i' && letter != 'o' && letter != 'u' ){

    System.out.println(letter);
    letter = in.next().charAt(0); //the line 12 is this.

    }**This code may help you**
mnemlml8

mnemlml82#

这个问题“即使你输入了一个元音也不会停止循环”你说,这是因为你需要改变你的条件从或到和。例如,当您输入 apple 这个 letter != 'a' 是假的,但第二个条件是 letter != 'e' 如果为真,则循环将继续。所以你需要把它改成 && (和)。
还有 letter != 'A' 不同于 letter != 'a' 所以我把输入改成小写:

Scanner in = new Scanner(System.in);

char letter;

int counter = 0;

do {
    counter++;
    letter = in.next().charAt(0); // the line 12 is this.
    System.out.println(letter);
    letter = Character.toLowerCase(letter);
} while ((letter != 'a' && letter != 'e' && letter != 'i' && letter != 'o' && letter != 'u') && counter < 5);
waxmsbnn

waxmsbnn3#

你的循环条件是循环while(letter!='一个'或字母!='e'等)
因此,如果用户输入“a”,第一个条件为false,而第二个条件为true,则循环继续。换句话说,用户所能输入的任何东西都不会停止循环。
尝试将or条件改为&&(and)。

相关问题