今天一个朋友说了个简单问题,我却做错了,觉得非常有意思,在这里分享一下
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
哈哈哈哈哈,尴尬的有趣的问题,忽略博主智商即可