2015-07-03 28 views
0

只是想知道,如果,下面的代碼行,可以使用三元運算符來代替:是三元操作符可用於以下?

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

如果是的話,我將如何正確分析?

+0

我相信你知道,'break'並不意味着'else'的狀態,對吧?需要有一個封閉的循環。 –

+0

您的示例不能編譯,請顯示更完整的摘要 – DrKoch

+0

感謝您的快速跟進。正如它所說的「C++」,我未能檢查該引用。下次我會更清楚。 – user3076672

回答

2

您不能在三元運算符中出現中斷。

查看this瞭解更多信息。

1

三元運算符是用來評估一個expresson條件:

result = condition ? first : second; 

在您的例子是沒有條件表達而是一個條件聲明

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終止。