
上QQ阅读APP看书,第一时间看更新
5.11 在一条表达式中给多个变量赋值
前面我们学到了怎样通过逗号运算符把多个表达式连接成一条复合表达式,以便在同一条语句里为多个变量赋值。这也可以用赋值运算符来实现,比方说我们可以像下面这样,先声明三个变量,然后在同一条语句里用三个赋值符号把这三个变量都设置成同一个值:

这样的表达式会按照从右到左的顺序执行,整条表达式的最终结果是最后那个赋值操作的结果。对于本例来说,程序会把0赋给这三个变量,让每个变量的值都变为0。
要想在同一条语句里给多个变量赋值,还有一种写法是用逗号表达式来连接多项赋值操作,比方说,我们可以像下面这样,在同一条语句里面做三次赋值,以交换first与second这两个变量的取值:

这三项赋值操作会按照从左到右的顺序执行。这就相当于分别执行下面三条语句:

这两种写法都对。有些人可能觉得,由于这三项操作合起来是为了交换两个变量的取值,因此适合写在同一行里,所以他们喜欢第一种写法。应该采用哪种写法要看个人的习惯,也要看具体的情况。你总是应该选择清晰而不是难懂的那一种。