猿问

输出为什么是0

public static void main(String[] args){

    int i=0;

    for(j=0;j<100;j++){

        i=i++;

    }

    System.out.println(i);

}

Alleri
浏览 2532回答 12
12回答

九天悬日

i++是先赋值,后自增,每次循环都是把0赋值给i了

干枯的海绵

1.首先你的 J变量没有申明,此串代码一定会报错的,循环体根本不会运行,怎么会有输出0?2.哪有i=i++这样的写法? i=i+1是有的 ; 直接i++也是可以的,i+=i也可以,程序怎么会认识你自创的的i=i++?试下这个吧: for( int j=0;j<100;j++){        i=i+1;/i++;

喵小咪2016

执行了一下也比较疑惑,上网翻了一下,原理如下:i=i++;第一步:先把i也就是0的值放在了一个临时变量区第二步:i自增1,此时i变成了1第三步:把临时变量区的值也就是0返回给i,所以此时i又变成了0然后不管循环多少次都会执行这个步骤,所以你最后输出的值是0

念念念念

i++是先用后增,所以进入循环后i是0,你又把这个值(0)赋值给了i,所以怎么循环都还是最初的值(0),建议改成 i++;

rookie2maven

赞同楼上

fulllion

这不就是自找麻烦吗?

Halo_

i++之后,i是变成了1,但是i++还是0,你把它又赋给i,那i不就一直是0了。

陌熙

i++是先用后加,++i是先加后用,循环100此 i=i++ ; 每次循环的是这样的 i = 0++; 先用后加 ;结果是i=0;.... 第100次: i=0++; print(i) == 0;哈哈

谷陵_

把【i=i++;】改成i++;就可以了。

wl温良

谁给你的 破代码    怎么可能会有 i=i++的语句      你可以改成i++或者i+=1都可以实现你的 目的 
随时随地看视频慕课网APP

相关分类

Java
我要回答