java中num++
publicstaticvoidmain(String[]args){intnum=0;for(inti=0;i<100;i++){num=num++;}System.o...
public static void main(String[] args) {
int num = 0;
for (int i = 0; i < 100; i++) {
num = num++;
}
System.out.println("num=" + num);
}
num++ 和 num=num++ 一个输出100 一个输出 0 ,后者我不懂为什么是 0 。求解 展开
int num = 0;
for (int i = 0; i < 100; i++) {
num = num++;
}
System.out.println("num=" + num);
}
num++ 和 num=num++ 一个输出100 一个输出 0 ,后者我不懂为什么是 0 。求解 展开
2个回答
展开全部
num++相当于num=num+1,所以最终结果是100,这个不用多解释。
num=num++,这是先把num赋值给左边的num,然后再自增1,这样的话由于num的初始值是0,所以左边的num也是0,即使循环100次,也仍然是0。
如果改成num=++num,这是先把num自增1,再赋值给左边的num,所以左边的num就是1,这样循环100次后,num就是100了,因此num=++num等价于num++或num=num+1。
其实num++和++num本身就是语句(也就是说运行后num的值就会+1),完全没必要再把它赋值给变量,这是画蛇添足,很可能反而不能实现自己预想的目的!
num=num++,这是先把num赋值给左边的num,然后再自增1,这样的话由于num的初始值是0,所以左边的num也是0,即使循环100次,也仍然是0。
如果改成num=++num,这是先把num自增1,再赋值给左边的num,所以左边的num就是1,这样循环100次后,num就是100了,因此num=++num等价于num++或num=num+1。
其实num++和++num本身就是语句(也就是说运行后num的值就会+1),完全没必要再把它赋值给变量,这是画蛇添足,很可能反而不能实现自己预想的目的!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你没给变量赋值当然始终是0;
赋值不是你小学学的加减法,赋值是从右边到左边
i每次+1;
num=num++;就是0+1 赋值给num 这时候num就是1 了依次类推 最后是100
你在循环里 只num++ 有用吗 外面的num当然还是0 你没赋值
赋值不是你小学学的加减法,赋值是从右边到左边
i每次+1;
num=num++;就是0+1 赋值给num 这时候num就是1 了依次类推 最后是100
你在循环里 只num++ 有用吗 外面的num当然还是0 你没赋值
追问
你不用解释 num++ ,这个地方我懂 ,最终输出100 ;
num=num++ , 假如初始值 为 num = 1 的话,结果输出还是 1 ,对吗?
也就是说 num++ 不能去 接收 ???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询