我們都知道C具有if
語句,並且該族的部分是else if
和else
語句。 else
本身檢查是否沒有值成功,如果是,則運行前面的代碼。Catch-all for if-else in C
我想知道是否有類似的else
的來檢查,如果值的所有成功他們沒有而不是相反。
比方說,我有這樣的代碼:
if (someBool)
{
someBit &= 3;
someFunction();
}
else if (someOtherBool)
{
someBit |= 3;
someFunction();
}
else if (anotherBool)
{
someBit ^= 3;
someFunction();
}
else
{
someOtherFunction();
}
當然,我可以縮短這個:
- 一個
goto
(哎呀,不知道爲什麼我會那麼做) - 寫作
if (someBool || someOtherBool || anotherBool)
(凌亂,不能遠程移動)。
我想這會是更容易編寫這樣的事:
if (someBool)
someBit &= 3;
else if (someOtherBool)
someBit |= 3;
else if (anotherBool)
someBit ^= 3;
all // if all values succeed, run someFunction
someFunction();
else
someOtherFunction();
確實c具有這種能力?
**電話**沒有。 – abelenky
這是行不通的,因爲一旦一個條件成立,它甚至不會檢查其餘的。這需要迫使它檢查所有條件,而不管哪種條件可能會導致性能下降。像Python這樣的高級語言爲此目的具有「全部」功能(儘管它的工作方式與您建議的不同)。 – Carcigenicate
@abelenky。把它變成一個答案,這樣我可以upvote你:) –