java - 为什么 while 循环在条件为假时被处理为真?

标签 java

我正在尝试用 Java 做:

int i=5;
while(i-- >0) {
   System.out.println(i);

}

运行该程序时,输出为:

4
3
2
1
0

我很惊讶地在输出中看到 0。我是新开发的。谁能证明这一点吗?

最佳答案

while 条件 i--> 0 中,首先对变量 i 求值,然后递减.

i达到值1时,它将通过循环测试,然后递减到0。这就是 print 语句在输出中显示 0 的原因。

下面是一个助记符,您可以使用它来跟踪减量和增量运算符的工作原理:

int i = 5;
System.out.println("When i = 5 then:");
System.out.println("i-- is " + i--);
i = 5;
System.out.println("--i is " + --i);

输出:

When i = 5 then:
i-- is 5
--i is 4

关于java - 为什么 while 循环在条件为假时被处理为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36468339/

相关文章:

java - 有没有更好的方法用 Java 编写此代码(用于 Web 表处理)?

Java AEM 查询生成器 ||

java - 使用 4Gb Ram 和 IBM Java 1.5 时按钮文本消失

java - 使用正则表达式拆分并不是拆分每个匹配项

java - 找到多个 Java 集合中最常见的术语?

java - Netty,如何在不使用 4.0.0 alpha 版本之一的情况下读取分块的 HTTP 响应?

java - 在 Java 中,如何将 byte[] 正确地转换为 String 再到 byte[]?

java - 我可以在没有明确提供 XSL 文件的情况下进行 XSL 转换吗?

java - 如何过滤Map中只有3个字符串长度的键?

java - 带 ansi 输入的 Eclipse 控制台