Go/else if
表示
< Go
Go言語において、else if 句は、if ステートメントと組み合わせて使用され、複数の条件を順に評価するための独立した構文要素です。先行する if の条件が偽 (false) であった場合に、さらに別の条件を評価し、その結果に基づいて特定のコードブロックを実行します。
構文:
[編集]if 条件式1 { // 条件式1 が true の場合に実行されるコード (if節) } else if 条件式2 { // 条件式1 が false で、条件式2 が true の場合に実行されるコード (else if節) } else { // どの条件式も false の場合に実行されるコード (else節 - 省略可能) }
動作:
[編集]- 最初に
ifの条件式1が評価されます。 条件式1がtrueなら、対応する{}内のコード (if節) が実行され、以降のelse ifやelseはスキップされます。条件式1がfalseなら、次のelse ifの条件式2が評価されます。条件式2がtrueなら、対応する{}内のコード (else if節) が実行され、以降のelse ifやelseはスキップされます。- この評価は、記述された順に
else if句がなくなるまで続きます。 - もし、どの
ifやelse ifの条件式もtrueにならなかった場合、else句が存在すれば、その{}内のコード (else節) が実行されます。
重要な特徴:
[編集]- 独立した構文要素:
else ifは、elseの後に単純にifを記述したものではなく、Go言語の文法として独立した意味を持ちます。 - 複数の条件評価: 複数の
else if句を連ねることで、多段階の条件分岐を記述できます。 - 排他性: いずれかの条件が
trueとなり、対応するブロックが実行されると、if-else if-else構造全体の処理は終了します。 - スコープ:
ifやelse ifの条件部分で短縮変数宣言 (:=) を行うと、その変数のスコープはそのifまたはelse ifブロック内に限定されます。
- 例
package main import "fmt" func main() { score := 85 if score >= 90 { fmt.Println("評価: 秀") } else if score >= 80 { fmt.Println("評価: 優") } else if score >= 70 { fmt.Println("評価: 良") } else { fmt.Println("評価: 可") } }
この例では、score の値に応じて対応する評価が出力されます。
else if 句は、Goプログラムにおいて、複数の条件に基づいて異なる処理を行いたい場合に不可欠な構文要素です。