我们都知道,像a = 3+5*2-2 在编程中叫表达式,由运算符与操作数构成,表达式必有一个结果。
其中 5*2,3+5*2,3+5*2-2 叫子表达式,是整个表达式的一部分,优先级与结合性可简单理解为先算谁后算谁,这样可以简单快捷得到答案。
但是编程中的运行过程不是先算谁后算谁,可理解为加小括号,然后从左到右计算,如下:
2+1-6*3
*优先级高于+ -,所以: + -结合性从左到右,所以:
2+1-(6*3) (2+1)-(6*3) ((2+1)-(6*3))
然后从左到右计算
先算 2+1 == 3 所以变成: (3-(6*3))
然后算 6*3==18 最后算:3-18==-15
平时口算就直接先后就行了,不用这么考虑具体执行过程。
再举一个例子:
a || b && c &&的优先级高 结合性从左到右
所以 a || (b&&c) 从左到右执行, 相当于a || 一个表达式
如果想知道更多的运算符优先级和结合性的话,可以在网上查询这种表,搜的到。
碎碎念:个人建议别死记硬背优先级结合性,用多了就熟悉了,和数学运算差不多,平常多上机在不断的出错中积累经验,这样编程水平才能提升。特别是备战应试考试的小伙伴,别光泡在理论题里面,编程完全刷理论题相当于白学!