多年來我以為 else if 是單一關鍵字(如 Ruby 的 elsif、VB 的 ElseIf),直到閱讀《Thinking in Java》才恍然大悟:
Java 沒有 else if 關鍵字。它只是 else 後面接著一個新的 if 陳述式。
if (cond1) {
// ...
} else if (cond2) { // 實際上是:
} // else {
// if (cond2) { ... }
// }
Java 屬自由格式語言,大括號與縮進僅為可讀性。編譯器視之為巢狀 if-else。
| 語言 | 關鍵字 | 備註 |
|---|---|---|
| Java / C / C++ / C# | 無 | else + if 巢狀 |
| Ruby | elsif | 單一關鍵字 |
| Python | elif | 單一關鍵字 |
| VB / Pascal | ElseIf | 單一關鍵字 |
| Go | 無 | 強制大括號,else if 為語法糖 |