想问一下这个三目是怎么理解的?它没有加括号,从左到右好像不太能理解
三目运算符
a?b:c
如果a是true,返回b,否则返回c
如果嵌套,那么跟if,else的嵌套顺序是一致的,默认按最近的互相结合
比如如下if表达式
if(a)
if(b)
else
那么这个else是和后一个if结合的,而不跟先一个if结合
三目运算符也是一样的
a ? b ? c : d : e
这里b?c:d可以单独看做一个表达式
相当于
d = a > b ? (a > c ? a : c) : b
这种表达式,为了方便阅读以及理解,编写时应该给他们加上括号。
题目描述:
int i = 10; int j = 20; int k = 3; k *= i + j;
问:k的值是多少?
当时这是一道选择题,有一个选项是50,我傻傻的选了它,其实结果是90,这也就涉及到运算符优先级的问题。
*=、/=、%=…这些优先级都是比较低的,但是需要强调的是,优先级不要背,大致知道顺序就行了,所以要多看几遍,当然,如果记忆力好并且时间多的话,背也没事。为了方便大家记忆,给出如下图片,来自:爱学习的诸葛大力
- 您还可以看一下 程张浩老师的微信小程序项目实战之我画你猜视频课程课程中的 获取绘画的题目小节, 巩固相关知识点