只是想知道,对于以下代码行,是否可以使用三元运算符替换:
if( current->chbits[i] != '\0')
printf("%c\n",current->chbits[i]);
else
break;
如果是这样,我将如何正确解析它?
答案 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
设置为0
,for
根据条件flag!=0
终止。