在 do while 循环 java 语言中扫描字符
scan character in do while loop java language
使用 do…while() 循环,扫描字符(每行一个)并打印。如果输入的是元音字母或输入的字符数已达到 5 个,则循环终止符。
这是一个简单的问题,但我不知道为什么会这样显示:
输入:
c
f
a
输出:
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:11)
这是我试过的代码:
int count = 0;
char ch;
do {
ch = input.next().charAt(0);
System.out.println(ch);
count++;
} while((ch != 'a') || (ch != 'e') || (ch != 'i') || (ch != 'o') || (ch != 'u') || (count < 5));
您需要解决两件事:
- 每次迭代增加
count
。
while-loop
中的条件应该检查是否继续下一次迭代或终止,这就是为什么我们需要检查字符是否不是任何元音并且count
仍然是小于 5.
Scanner input = new Scanner(System.in);
int count = 0;
char ch;
do {
ch = input.next().charAt(0);
count++;
System.out.println(ch + " " + count);
} while((ch != 'a') && (ch != 'e') && (ch != 'i') && (ch != 'o') && (ch != 'u') && (count < 5));
使用 do…while() 循环,扫描字符(每行一个)并打印。如果输入的是元音字母或输入的字符数已达到 5 个,则循环终止符。
这是一个简单的问题,但我不知道为什么会这样显示:
输入:
c
f
a
输出:
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:11)
这是我试过的代码:
int count = 0;
char ch;
do {
ch = input.next().charAt(0);
System.out.println(ch);
count++;
} while((ch != 'a') || (ch != 'e') || (ch != 'i') || (ch != 'o') || (ch != 'u') || (count < 5));
您需要解决两件事:
- 每次迭代增加
count
。 while-loop
中的条件应该检查是否继续下一次迭代或终止,这就是为什么我们需要检查字符是否不是任何元音并且count
仍然是小于 5.
Scanner input = new Scanner(System.in);
int count = 0;
char ch;
do {
ch = input.next().charAt(0);
count++;
System.out.println(ch + " " + count);
} while((ch != 'a') && (ch != 'e') && (ch != 'i') && (ch != 'o') && (ch != 'u') && (count < 5));