有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java增量变量在循环中,意外结果

代码片段:

int i=0;

for(int i=0;i<1;i++){
    i=--i-i--;
    System.out.println("for loop i= "+i);
}
System.out.println("i value outside for loop= "+i);

输出:

for loop i= 0
i value outside for loop= 1

循环内i的值为零,循环外i的值为1。你能帮我理解吗


共 (1) 个答案

  1. # 1 楼答案

    i= i-i ;i的值更改为-1,然后返回0,因为它将-1-(-1)赋值给它,即0。产生此结果的原因是,预减量运算符 i返回减量后的值-1,而后减量运算符i 返回减量前的值(因此它返回-1,而不是-2

    但是,循环的i++子句将i增加到1,这会导致循环终止。因此i的值是循环后的1

    请注意,你的问题中有一个拼写错误。您在同一范围内两次声明i。为了让代码通过编译(并显示您声称获得的输出),您应该将其更改为:

    int i=0;
    
    for (i = 0; i < 1; i++) {
        i =  i-i ;
        System.out.println("for loop i= "+i);
    }
    System.out.println("i value outside for loop= "+i);