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 。求解
展开
 我来答
网海1书生
科技发烧友

2018-11-24 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26232

向TA提问 私信TA
展开全部
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),完全没必要再把它赋值给变量,这是画蛇添足,很可能反而不能实现自己预想的目的!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5e19ac3
2018-11-24 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:182
采纳率:48%
帮助的人:32.8万
展开全部
你没给变量赋值当然始终是0;
赋值不是你小学学的加减法,赋值是从右边到左边
i每次+1;
num=num++;就是0+1 赋值给num 这时候num就是1 了依次类推 最后是100
你在循环里 只num++ 有用吗 外面的num当然还是0 你没赋值
追问
你不用解释 num++  ,这个地方我懂 ,最终输出100 ;
num=num++ , 假如初始值 为 num = 1 的话,结果输出还是 1 ,对吗?
也就是说 num++ 不能去 接收 ???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式