为什么运算结果是这样,自学编程的小白特来求助品葱编程大佬?

使用CN2/CN2GIA顶级线路,支持Shadowsocks/V2ray科学上网,支持支付宝付款,每月仅需 5 美元
## 加入品葱精选 Telegram Channel ##

品葱用户 逃离东亚大陆洼地 提问于 6/23/2020

int a=5;
int b=++a;//让a先执行自增,然后将值赋给变量b
System.out.println(“a:” +a);
System.out.println(“b:” +b);
运行结果a:6    b:6
自己的理解:让a先执行自增,a=5,自增就变成6,然后将值赋给变量b, b=6

int a=5;
int b=a++;//将a的值赋给变量b,然后再执行自增
System.out.println(“a:” +a);
System.out.println(“b:” +b);
运行结果a:6    b:5
自己的理解,将a的值赋给变量b,然后再执行自增。a=5 b=a=5++,b=6

品葱用户 請不要發現我 评论于 2020-06-23

int a=5;        将5这个数值赋予给变量a
int b=++a;    a的值自增变成6,b再被赋予a的值(就是6)
System.out.println(“a:” +a);    输出a:6
System.out.println(“b:” +b);    输出b:6

int a=5;        将5这个数值赋予给变量a
int b=a++;    b被赋予a的值(就是5),a再自增成6
System.out.println(“a:” +a);     输出a:6
System.out.println(“b:” +b);     输出b:5

总结:
重点在于区分++a和a++的不同,前者是先自增再赋值,后者是先赋值再自增,顺序不同导致最后赋值给b的结果不同。

品葱用户 insomnia 评论于 2020-06-23

請不要發現我已经说得很明白了。++放前放后其实只是要表示变量是否先自增再作其他处理。说得再简单些
int b=++a; 其实是以下代码的简写:

a = a + 1;  
int b = a;

int b=a++; 其实是以下代码的简写:

int b = a;  
a = a + 1;

都包含自增和赋值,但顺序不同。

品葱用户 oxygen 评论于 2020-06-23

从您的ID可以看出您接触过姨学,然后从问的问题可以看出您可能是00后,所以姨学影响了越来越多的年轻人,真棒。
b=a++;  是不是先b=a;  再 a=a+1;

品葱用户 longstring 评论于 2020-06-24

小白二來問,過程能這樣描述嗎?

a -> val -> 5  
  
  
a++ -> func( op ){  
  op( a );  
  a -> val -> a.val + 1;  
} -> a.val  
  
++a -> func( op ){  
  a -> val -> a.val + 1;  
  op( a );  
} -> a.val  
  
  

二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十二十

品葱用户 手握重兵 评论于 2020-06-23

打开课本,翻到优先级、结合性

1 ++a 表示 a = a +1
2 b=++a  打开课本,翻到优先级、结合性  ++a先执行 b=赋值符号后执行
3 a++ 只是一个表达式 ,表示 a+1 并不改变什么

虽然我连你用的什么语言都不清楚,就在胡乱指导

点击品葱原文参与讨论

最简单好用的 VPS,没有之一,注册立得 100 美金
comments powered by Disqus

See Also

找到一份程序员的实习工作,不知道在哪里找学习资料?

品葱用户 逃离东亚大陆洼地 提问于 6/16/2020 找到一家不限学历,不限年龄,不限经验。前三个月为学习期,每个月2000元。每种语言都要学,第一个月每个星期都要参加考试,如果有一个星期考试没过,直接离职走人。有可能一个星期就打道回府。 …

自学python应该买什么样的笔记本?

品葱用户 逃离东亚大陆洼地 提问于 6/13/2020 看了几款笔记本,联想小新15 r7 4800u,首发价4399元,现在买不到。机械革命s2 air 15 r7 4800h,4899元,没有小键盘。宏碁新蜂鸟fun 15 …

孙玲:从工厂流水线工人到纽约程序员

编者荐语: 出生成长于湖南娄底小村镇的她,12 岁初中被迫辍学,19 岁高考失利,当过理发学徒、工厂流水线生产女工。 在意识到需要改变自己的 20 岁,她用全部家当自主学习软件编程和英语。经过 10 年的不懈努力,她成功申请到美国留学,在纽 …

湾区中国码农图鉴:我的骚操作你永远不懂

欢迎收看**北美漫科普《美国城市系列》**之: 程序员的炫耀方式 1 在湾区,比拼的是文化和内涵! 普通世俗的炫耀方式: 湾区程序员的炫耀方式: 程序员的着装 2 **程序员的恋爱交友 ** 3 湾区码农在撩妹上有着自己的方式和手法 普通世 …

学习哪些编程语言才能开发VPN的app?

品葱用户 Macgoy 提问于 3/9/2020 我想开发一个VPNapp,该从哪些编程语言入手? 品葱用户 projectpolaris 评论于 2020-03-09 我是某开源代理软件的开发者组成员,我说一点实际的吧,上面的评论基本上泛 …