关于Java if判断的问题


if(a+2*b+4*c==10){i++}
……

img

上面if语句括号里判断的东西依次顺序是怎么走的。
For循环abc的次数等于10就输出if方法题。
但是我有点不明白if语句是用什么顺序来判断的呢。
比如for嵌套…a=0:b=3:c=1:,
在if语句是不是a+2b+41:a=0+2➡️2b+41=10
我的猜想就是这样的,请问判断顺序是不是和我想的一样。

给你看个宝贝:

img


所以按照这个优先级来看,把a=0;b=3;c=1;带入if条件,得到0+23+41 == 10,先算乘除再算加减,得到0+6+4 == 10,算完加法10 == 10,结果为true。


直接代入看就行
a=0:b=3:c=1
a+2*b+4*c=0+2*3+4*1=0+6+4=10(乘除法优先级大于加减法,要先算乘法再算加法)

先乘除,后加减咯,==属于关系符号,运算优先级比加减乘除低,实在搞不清楚就主动加括号,括号的优先级最大。这个不是靠猜的,语言设计者们就是这么定义的。

==是用来判断左(a+2b+4c)右(10)两边的值的
把abc带进去计算左边的值,等于右边的值10就为true进入if语句的body{}

咋说呢,
1、if里面就是一个二元的boolean表达式。
2、二元表达式,计算顺序从左到右
3、左边是一个四则计算,既然是四则计算,遵守小学学习的数学四则计算优先级计算顺序