Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请解释为什么这段代码会导致无限循环 for(int i=0;i_Java_Loops_Unary Operator - Fatal编程技术网

Java 请解释为什么这段代码会导致无限循环 for(int i=0;i

Java 请解释为什么这段代码会导致无限循环 for(int i=0;i,java,loops,unary-operator,Java,Loops,Unary Operator,基本上i的值保持不变,并保持为0,因此它是无限的。但为什么不改变呢 如果我将I=I++更改为I++,它会工作。(不是无限循环)。因为i++在表达式求值后递增i,所以您基本上是说i=i。如果执行i=++i,则它将起作用,因为在计算表达式之前,它会递增i。从逻辑上讲,赋值是在计算右侧之后完成的,就像其他Java赋值一样。但是,“后缀增量表达式的值是存储新值之前的变量值。”() 由于赋值,在存储递增值之前,i的值保持为零 for (int i = 0; i < 10;) { i=i++

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


如果我将
I=I++
更改为
I++
,它会工作。(不是无限循环)。

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

从逻辑上讲,赋值是在计算右侧之后完成的,就像其他Java赋值一样。但是,“后缀增量表达式的值是存储新值之前的变量值。”()

由于赋值,在存储递增值之前,
i
的值保持为零

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