逗号表示的是这一串以逗号连接的代码一起执行
if语句只作用于之后的第一条语句,可以省去{},这里的逗号就是将原本多句连接成一句。
接下来看一下变量变化过程:
第一次出do while后,i x y的值变化为3 1 2。因为i自增三次,第一次自增后i为1,满足if条件,会进入,所以x变为1。y+=i++这句中i++是在式子运算完后在自增的。
第二次出do while后,i x y的值变化为5 1 6,if不满足条件,没进入;
第三次出do while后,i x y的值变化为7 1 12,if不满足条件,没进入;
第四次出do while后,i x y的值变化为9 1 20,if不满足条件,仍然没进入,此时i已经不满足小于等于7,所以退出循环
即输出为9120
if语句里如果i是偶数则不执行i,是奇数则执行因为i求余2为1
如果是,这说明它和下面属一行代码块相当于{}把它们俩括起来了
if语句主体有两种一种有{}一种没有,没有的去下面第一行代码为主体内容(注意这里的一行指的是以;区分而不是行数)
x+=i, i++;
是一个语句,其中x+=i, i++
是逗号表达式,逗号表达式按顺序执行,表达式的值是最后一项的值if
语句后面只有一个语句时,{}
可以省略
1.if、for、while本来就不必跟大括号,它们只作用于之后的一条语句
大括号是块标识符,定义了一个块
如果if后面跟大括号,那么相当于将整个块作为一条语句,进if则执行整个块,否则整个块不执行
2.x+=i,i++是个逗号表达式,它是一条语句,所以即使不用块包裹,它们也都在if作用下
答案是9、8、15