一个关于赋值的有趣问题

今天一个朋友说了个简单问题,我却做错了,觉得非常有意思,在这里分享一下

public static void main(String[] args) {
        int j = 0;
        for(int i = 0 ; i<100; i++ ){
        j=j++;
        }
        System.out.println(j);

}

就是这样一个简单的问题大家不妨先猜一下答案

我先猜的是100,哈哈,结果当然上了朋友的当

于是我放在test里面测试一下结果是0,我就很震惊了

难道不是100吗?

我就debug了一下,看到j的值一直是0,也就是说++这个东西没有用

那么这段代码肯定没问题,也就是说j=j成立,后面的++就没有了用处

那么就执行了100此j=j,也就是j=0的这个循环,于是输出就是0.

博主我突发其想,既然如此,后面的内容没有实际用处,那么将j=j++换成j=++j呢?

public static void main(String[] args) {
        int j = 0;
        for(int i = 0 ; i<100; i++ ){
        j=++j;
        }
        System.out.println(j);

}

博主又进行大胆推测,当然方向肯定是歪的...

推测方向:1+2+3+4....=5050

正确结果:100

错误方向:错误的将++j看成了前值+后值

正确方向:++相当于+1,相当于进行100次循环+1

哈哈哈哈哈,尴尬的有趣的问题,忽略博主智商即可

猜你喜欢

转载自blog.csdn.net/mengdil_yl/article/details/81129996