java - 请解释为什么这段代码会导致无限循环

标签 java loops unary-operator

for (int i = 0;  i < 10;) {
    i=i++;
    System.out.println("Hello World" );
}

基本上 i 的值保持不变,保持为 0,因此它是无限的。但为什么它没有改变?

如果我改变i=i++i++ , 有用。 (不是无限循环)。

最佳答案

因为 i++ 在表达式求值后递增 i,所以你基本上是在说 i = i。如果您执行 i =++i 那么它将起作用,因为它会在计算表达式之前递增 i

关于java - 请解释为什么这段代码会导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35419780/

相关文章:

java - 在 CardLayout 中切换面板时如何提醒面板可见

java - drawString() 方法上的 MouseListener

java - Android:在编辑文本中插入空格会导致崩溃

javascript - 异常缓慢的 Javascript 循环

java - 在 Hibernate QL 中否定一元运算符

java - 如何使用 Servlet API 2.5 创建 HttpOnly cookie?

java - 验证字符串(PPS 编号)

php - 什么更快?带有通配符和 OR 的 SQL 查询,或带有用于过滤的 php 循环的 catch-all 查询?

有人可以解释为什么 sizeof() 用一元运算符返回这些值吗?

c - 预期变量没有变化,但一元运算符即使在 false if 语句中也能工作。为什么这样?