逗号运算符,是极少见的运算符,我们看一下代码理解一下逗号运算符的功能:
先说结论,逗号运算符的优先级非常低,比赋值运算符=
还要低;
同时,逗号隔开的几个表达式,都会各自进行计算,但是整体表达式只会返回最后一个表达式计算的结果;
对于a = (1 + 2, 3 + 4)
,先算括号里的,是逗号运算符隔开的两个表达式,算的结果为(3, 7)
,整体表达式只会返回最后一个表达式计算的结果,即只返回7,最后赋值给a,所以输出结果为a的值为7;
对于a = 1 + 2, 3 + 4
,逗号隔开的两个表达式,第一个表达式a = 1 + 2
计算结果为a = 3
,即a被赋值为3;第二个表达式3 + 4
,计算结果为7,整体返回的结果是第二个表达式的结果,即返回7,但是这个结果,没有变量去接收,被垃圾回收了;
对于最下面的if语句,b = 1, c = 2, d = b + c > 0
,被逗号隔开三个表达式,头两个表达式都是赋值语句;第三个也是赋值语句,但是因为b + c > 0
隐式转换了布尔值为true并且赋值给d了,整体表达式返回的结果为true,即if(true)
,所以进入了if语句,打印出了三个变量的值;