只是想知道,如果,下面的代碼行,可以使用三元運算符來代替:是三元操作符可用於以下?
if(current->chbits[i] != '\0')
printf("%c\n",current->chbits[i]);
else
break;
如果是的話,我將如何正確分析?
只是想知道,如果,下面的代碼行,可以使用三元運算符來代替:是三元操作符可用於以下?
if(current->chbits[i] != '\0')
printf("%c\n",current->chbits[i]);
else
break;
如果是的話,我將如何正確分析?
您不能在三元運算符中出現中斷。
查看this瞭解更多信息。
三元運算符是用來評估一個expresson條件:
result = condition ? first : second;
在您的例子是沒有條件表達而是一個條件聲明。
是的,您可以通過進行一些修改以取消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
終止。
我相信你知道,'break'並不意味着'else'的狀態,對吧?需要有一個封閉的循環。 –
您的示例不能編譯,請顯示更完整的摘要 – DrKoch
感謝您的快速跟進。正如它所說的「C++」,我未能檢查該引用。下次我會更清楚。 – user3076672