四十年前很多人学过谭洁强版的C语言,都对其中的“++”“–”符号很费解 , 感觉折腾得不行 。其实这个问题在Java里面也一样存在 。
例如下面这段代码,能输出什么结果呢?
inta = 3;
intb = 5;
intc = 9;
.out.(b+++-c–+–a);
大家可以先算算java中webapi是什么,看看输出的结果是不是和大家想的一样 。
一秒 。
两秒 。
三秒 。
好吧,现在我们出结果,答案是-2 。
文章插图
文章插图
那么为什么是-2呢?很多人可能会这样算java中webapi是什么,b++=6,-c–=-8,–a=2,所以结果应该是0 。
那么为什么会这样呢?我们先来把这个表达式的运算顺序确定一下 。
b+++-c–+–a的运算顺序是这样的
【“++”在前还是在后有什么区别?聊聊Java里面的奇怪语法】(b++) + (-(c–)) + (–a)
加上了括号就清晰了 。
很多朋友一看就觉得这不就应该是6+(-8)+2=0吗?
但是事实上不是这样,这个原因主要是在于对“++”这个运算符的定义上,这个运算符如果在后面的话的是在运算结束之后再加1,在前面的话是加1之后再参与运算,–同理 。所以在上面的例子中 , 实际的运算中,是5-9+2,所以结果是-2 。
如果我们先进行++和–再参与运算的话 , 那么结果就是0了 。
喜欢本文的话,欢迎活在信息时代哦:)
本文到此结束,希望对大家有所帮助 。
- “明明在进步,为什么你们还是不满意!”孩子的无奈,家长的苦恼
- 侠客谷在大自然中“飞檐走壁”
- 孩子太皮不听话?先别急着动手,试试用这些方法代替打骂
- 【关“心”】疫情下,怎样给中小学生做心理疏导?
- 手机里面有哪些“惊天动地”的APP?
- “您看中哪款,用微信扫一扫就可以自助下单了!”
- 玩转“六一” 满满都是交警叔叔阿姨对孩子们的爱与祝福 | 知危险会避险
- 孩子的很多问题,都能用“深度陪伴”治愈
- 拒绝暴力 反家暴有我——全省妇联系统开展“11·25”国际消除对妇女暴力日反家庭
- 山村学前教育发展:浅谈农村“留守儿童”的学前教育