好吧,我是一名初学者,正在学习 Herbert Schildt 的《Java 初学者指南》一书。这是我在学习 for 循环章节时遇到的一段代码。
代码基本上要求用户输入,如果用户输入与“s”条件匹配,则循环不会启动,如果它与星号匹配,并在每次迭代时打印“pass# + i”。
我的问题是为什么当我输入除“s”之外的任何内容时,输出是两行“pass#”?为什么不只是一行?
System.out.println("pls type s");
for( i = 0; (char) System.in.read() != 's'; i++)
System.out.println("pass#" + i);
最佳答案
这是由于在输入后按 Enter 键,这会通知 shell 将您的输入(包括按 Enter 键)放入标准输入。 Enter 本身有一个 ASCII 值。所以,它(回车)也算作一个字符。
尝试仅按 Enter 键;您将看到一条 pass# 消息。
关于Java For 循环逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58576414/