为什么在分配给临时变量的 for 循环值中没有按原样打印?

Abh*_*hek 1 java oop

我的演示程序:

public static void main(String x[])
{
    int tempVal = 5;
    for(int i = 0; i < 5; tempVal = i++)
    {
        System.out.println("Value Of i: "+i +" _tempVal:"+tempVal);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出 :

i 的值:0 _tempVal:5

i 的值:1 _tempVal:0

i 的值:2 _tempVal:1

i 的值:3 _tempVal:2

i 的值:4 _tempVal:3

为什么变量 "tempVal" 与 'i' 的值不同?

use*_*SI. 5

因为你是后递增的。这意味着tempValue = i但随后i会增加。

为什么在第一次迭代时tempValue仍然是 5 ?OCA Programmer Guide 中有一个不错的图

在此处输入图片说明

它解释了 for 循环中的每一步,这里最重要的是更新语句是在主体执行之后 执行的。

更具体地说,该图来自“第2章(运算符和语句)” (图2.7)