有 Java 编程相关的问题?

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

Java中for循环中的增量,其中增量也在循环中增加

这里有一些问题似乎与我的相似,但它们在某些方面似乎都有所不同,所以我确实认为这个问题是独一无二的

我正在尝试LinkedIn Java技能评估中的问题。这个问题的正确答案是该语句将打印10次。但我不明白为什么这是正确的答案

代码如下:

public class Main{ 
    public static void main(String[] args) {
        for (int i=0; i<10; i=i++){    
            System.out.println("i first equals " + i);
            i+=1;
            System.out.println("i now equals " + i);
            System.out.println("Hello World!");   
        }  
    }
}

我自己添加了前两个println语句,试图找出代码

我会认为每次循环运行时我都会递增,而且我也会在循环中递增。所以第一次循环运行时,i=0,然后在循环中i增加到1(i+=1),然后在第一次循环迭代结束时(或第二次循环开始时?)i增加到2(i=i++),然后在循环中i增加到3(i++=1),依此类推。但是,println语句显示以下内容:

i first equals 0
i now equals 1
Hello World!
i first equals 1
i now equals 2
Hello World!
i first equals 2
i now equals 3
Hello World!

等等。那么我在这里错过了什么?为什么循环内没有增量,循环本身也没有增量?当循环println语句说“i现在等于1”时,为什么值1不进入循环的递增器i=i++并将其设为2,这样下次在循环中println会说“i首先等于2”


共 (1) 个答案

  1. # 1 楼答案

    您的for循环与相同

    for (int i=0; i<10; /* Do Nothing*/ ){    
        System.out.println("i first equals " + i);
        i+=1;
        System.out.println("i now equals " + i);
        System.out.println("Hello World!");   
    }
    

    在本例中,i在for循环中用i+=1op递增