Java For 循环逻辑

标签 java for-loop

好吧,我是一名初学者,正在学习 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/

相关文章:

r - 缩放 xts 对象的列

java - Hibernate session 与两个不同数据库的交互

java - 自动将 Clojure 源代码转换为 Java 源代码的最佳方法

java - 私有(private)模块和/或提供程序的简单使用

java - JAX-RS 响应的效用与组合与继承

python - for 循环连接字符串

java - 如何从资源文件夹加载文件?

for-loop - 在unityscript中的for循环中停止一个代码

java - ActionListener 失败 - Java For-Each 分配给 JMenuItem

python - 如何在 python 中将 for 循环的增量设置为 1?