java—使用while循环递增奇数值显示错误的必需值

qvk1mo1f  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(251)

这个问题在这里已经有答案了

增量后(i++)和增量前(++i)操作符在java中是如何工作的(14个答案)
三天前关门了。
为什么随附的代码给了我这个输出:

3 , 5 , 7 , 9

它应该只显示偶数值

public static void main (String [] args){
    int i = 1;

    while ( i < 10 ){
        if ((i++)%2 == 0){
            System.out.println(i);

        }
    }}
9gm1akwq

9gm1akwq1#

请尝试以下代码:

public static void main (String [] args){
int i = 1;

while ( i < 10 ){
    if ((++i)%2 == 0){
        System.out.println(i);

    }
}}
kpbpu008

kpbpu0082#

这是因为你在做 i++ 在if里面。post increment表示条件中计算的值是pre increment,但当到达print语句时,它已递增。尝试在if之后递增。

tvmytwxo

tvmytwxo3#

评估在增量之前完成。
增量后进行打印。

int i = 1;

while ( i < 10 ){
    if ((i++)%2 == 0)  {        // i evaluated true while "even" before increment
        System.out.println(i);  // printing post increment i 
    }
}

要纠正这一点,只需将autoincrement移到 i .

相关问题