如题所述
看前面,像一个if语句(判断分支语句);再看后面,就不是了。
看括号内的内容:用两个分号隔开成为三部分,代表三个表达式(也可看成三个语句):
第一个i=a<b?a:b,是一个赋值语句,把表达式a<b?a:b的值赋给变量i。这是一个问号表达式,先判断a与b的大小,如果a<b为真,则表达式的值为a,否则表达式的值为b。
第二个是i>0,是一个关系表达式。
第三个是i--,是i的后自减表达式。
这样三个表达式放在一起,不符合if语句的语法。所以它不是if语句。
在C语言中,只有for语句(循环语句),才需要这样三个表达式。
所以,整句话应该是for(i=a<b?a:b;i>0;i--)的误写。
有什么问题请留言。
看括号内的内容:用两个分号隔开成为三部分,代表三个表达式(也可看成三个语句):
第一个i=a<b?a:b,是一个赋值语句,把表达式a<b?a:b的值赋给变量i。这是一个问号表达式,先判断a与b的大小,如果a<b为真,则表达式的值为a,否则表达式的值为b。
第二个是i>0,是一个关系表达式。
第三个是i--,是i的后自减表达式。
这样三个表达式放在一起,不符合if语句的语法。所以它不是if语句。
在C语言中,只有for语句(循环语句),才需要这样三个表达式。
所以,整句话应该是for(i=a<b?a:b;i>0;i--)的误写。
有什么问题请留言。
温馨提示:答案为网友推荐,仅供参考