我有下面這段代碼爲什麼三元運算符不能在我的代碼中工作?
mystack.empty() ? return 1 : return 0;
看起來完美但從語法點,但每當我嘗試運行它拋出一個錯誤說
[錯誤]預期「:」之前'返回'
和
[錯誤]預期PR '返回'之前的imary表達式
三元運算符不能使用return語句,或者代碼有問題嗎?我猜代碼是自我解釋的。
謝謝。
我有下面這段代碼爲什麼三元運算符不能在我的代碼中工作?
mystack.empty() ? return 1 : return 0;
看起來完美但從語法點,但每當我嘗試運行它拋出一個錯誤說
[錯誤]預期「:」之前'返回'
和
[錯誤]預期PR '返回'之前的imary表達式
三元運算符不能使用return語句,或者代碼有問題嗎?我猜代碼是自我解釋的。
謝謝。
語法無效。 Ternary conditional operator要求其操作數爲expressions,但是return 1
和return 0
不是。
在另一方面,return statement可與(可選的)的表達中使用,諸如三元條件算子:
ATTR(可選)返回表達式(可選); (1)
所以,你可以/應該寫爲
return mystack.empty() ? 1 : 0;
從技術上講,'return 1'不是一個語句('return 1;'would be) –
@ M.M那麼它只是一個無效的表示?既不是陳述也不是表達。 – songyuanyao
是的,它不符合條件運算符的語法,因爲它不是一個表達式(爲了這個目的,它不管它是什麼,如果有的話) –
回報是一個聲明,規則是,你不能調用語句轉換成一個表達式。
嘗試重新格式化代碼,並使用以下(假設函數返回一個布爾值)
return mystack.empty()? 1:0;
_which看起來與view_的語法點完美 - 不,它不需要 –
哪種語言是什麼? 'return'通常是一個陳述,而三元運算符需要兩個表達式,例如'return(mystack.empty()?1:0);'。 – Lee
@EdHeal這裏有什麼問題? – Anoneemus