Java 调试do while循环时出现多个语句
我为o-while循环编写了一个代码,从用户那里获取一个输入,并检查它是否等于“c”或“c”即循环的出口。如果输入c或c以外的输入,do块的内部语句出现3次,如果我只按enter press而不按任何字符,则do块的内部语句出现2次,为什么??有人能解释一下吗Java 调试do while循环时出现多个语句,java,Java,我为o-while循环编写了一个代码,从用户那里获取一个输入,并检查它是否等于“c”或“c”即循环的出口。如果输入c或c以外的输入,do块的内部语句出现3次,如果我只按enter press而不按任何字符,则do块的内部语句出现2次,为什么??有人能解释一下吗 int ch = 0; do { System.out.println("Press C or c to continue."); ch = System.in.read()
int ch = 0;
do {
System.out.println("Press C or c to continue.");
ch = System.in.read();
}
while(ch !='C' && ch !='c');
(从您描述的输出判断,您可能在Windows计算机上,对吗?)
read
返回输入流中的下一个字符。输入C或C,然后按enter键时,实际上输入了三个字符:
c
\r
\n
read
在提示您再次输入任何内容之前会被调用三次,因此println
也会被调用三次
如果只按enter键,则只输入了两个字符:
\r
\n
Scanner
有一个很好的方法,名为,它返回用户输入的所有内容,直到到达新行字符
Scanner sc = new Scanner(System.in);
String line = "";
do {
System.out.println("Press C or c to continue.");
line = sc.nextLine();
}
while(!ch.equals("C") && !ch.equals("c"));
因为在没有字符的情况下按enter键仍会读取字符,即换行符(
\n
)。