Asked:2022-07-25 23:01:09 +0000 UTC2022-07-25 23:01:09 +0000 UTC2022-07-25 23:01:09 +0000 UTC
为什么字符串“Enter a letter”会显示2次?
772
public class Main {
public static void main(String[] args) throws IOException {
char ch;
do {
System.out.println("Введите букву");
ch = (char) System.in.read();
} while (ch != 'q');
}
}
我使用调试模式来研究这个。事实证明,当您键入一个字符(例如“k”)并按 Enter 键时,
System.in会通过流输入 2 个字符!第一个是您输入的那个(例如'k'),第二个是由于 key 不可见的换行符('\n')
Enter。因此,我们循环了 2 次(因为在输入流中计算了 2 个字符)。do-while使用带有后置条件或前置条件的循环都没有关系while。