我是java的新手。想要帮助分析下面的一小部分代码。下面的代码将'i'的值始终打印为0。似乎'我'永远不会增加,而下面的循环结果是无限循环。有人可以解释为什么'我'根本没有增加?我知道当使用后增量运算符时,首先使用表达式值,然后增加值。因此,循环的第一次迭代将'i'的值打印为0.但是,至少在第二次迭代中,'i'应该增加到1,依此类推。右:
public class PostIncExample {
public static void main(String[] args) {
for(int i=0; i<10;){
System.out.println(i);
i=i++;
System.out.println("hi" + i);
}
}
}
答案 0 :(得分:2)
在您的代码中,i++
会返回&#34; old&#34;值i
(递增前的值)。然后将此旧值分配给i
。因此,在i = i++
之后,i
具有与之前相同的值。
答案 1 :(得分:1)
++i increments and then uses the variable.
i++ uses and then increments the variable.
这就是为什么上面的代码总是打印0并且变为无限
您可以按以下方式修改代码:
public class PostIncExample {
public static void main(String[] args) {
for(int i=0; i<10;){
System.out.println(i);
i=++i;
System.out.println("hi" + i);
}
}
}
当您想要使用递增的值时,使用PRE-increment 该表达式中的变量。
POST-increment使用 增加之前的原始值。