0
在編寫複雜邏輯檢查時,我無法理解C++中的運算符分組。 基本上,我只是擔心,如果這個代碼:三元運算符:異常拋出和嵌套
int getIndex(int i) throw(Exception) {
return (i >= 0 && i < length) ? array[i] : throw IndexOutOfBoundsException();
}
是相同的,因爲這一個:
int getIndex(int i) throw(Exception) {
return i >= 0 && i < length ? array[i] : throw IndexOutOfBoundsException();
}
此外,我不確定是什麼限制,而嵌套三元運營商,因爲我想做這樣的事情:
int getIndex(int i) throw(Exception) {
return (i >= 0 && i < capacity) ? ((i < length) ? (array[i]) : (throw IndexOfEmptyFieldException();) : (throw IndexOutOfBoundsException();))
}
但(當然)我希望它能正常工作,也是可讀的。
如果你認爲這是使用三元運算符的壞榜樣,我應該只使用if/else
或一些其他的方法,避免結構像這樣的未來?
使用三元表達式有兩個問題,第一個也是最明顯的是可讀性/可維護性方面。第二個是表達式的兩個分支必須返回相同的類型,而不是。事實上,你的一個分支根本不會返回。 –
@JoachimPileborg它編譯,雖然我沒有嘗試運行它。此外,此異常的catch塊會終止程序。 –
嵌套三元組如何增加可讀性?如果存在多個條件,我肯定會更喜歡if/else – user463035818