是三元运算符可用于以下?

时间:2015-07-03 16:09:50

标签: c break ternary-operator

只是想知道,对于以下代码行,是否可以使用三元运算符替换:

if( current->chbits[i] != '\0')
   printf("%c\n",current->chbits[i]);
else
   break;

如果是这样,我将如何正确解析它?

3 个答案:

答案 0 :(得分:2)

你不能让三元运算符中断。

有关详细信息,请参阅this

答案 1 :(得分:1)

三元运算符用于有条件地评估 expresson

result = condition ? first : second;

在您的示例中,没有条件表达式,而是条件语句

答案 2 :(得分:0)

是的,您可以通过进行一些修改来替换三元运算符代码,以消除break语句。

for(int i=0, int flag=1 ;flag!=0; i++){
    flag=(current->chbits[i]!='\0') ? printf("%c\n",current->chbits[i]) : 0;
}

由于flag返回成功写入输出的字符数,因此printf()不会为零。当current->chbits[i] != '\0'变为假时,flag设置为0for根据条件flag!=0终止。