Go 言語の else if 文
1. else if ステートメント
最初の条件が false(偽)であった場合に、新しい条件を指定して評価を継続したいときは else if ステートメントを使用します。
2. シンタックス
if condition1 {
// condition1 が true の場合に実行されるコード
} else if condition2 {
// condition1 が false かつ condition2 が true の場合に実行されるコード
} else {
// condition1 と condition2 が両方 false の場合に実行されるコード
}3. else if ステートメントの活用
以下の例では、else if を使用して複数の時間帯に応じた処理の分岐を行っています。
3.1. 実装例
package main
import ("fmt")
func main() {
time := 22
if time < 10 {
fmt.Println("おはようございます。")
} else if time < 20 {
fmt.Println("こんにちは。")
} else {
fmt.Println("こんばんは。")
}
}実行結果:
こんばんは。3.2. コードの解説
上記のコードでは、time(22)が 10 以上であるため、最初の条件は false と判定されます。次に else if ステートメントの条件(time < 20)が評価されますが、これも false です。最終的に condition1 と condition2 の両方が false となったため、else ブロックの処理が実行され、「こんばんは。」と出力されます。
もし time が 14 であれば、プログラムは「こんにちは。」を出力します。
4. 数値比較における分岐例
数値の大小関係や等価性を判定する際にも else if は有効です。
4.1. 実装例
package main
import ("fmt")
func main() {
a := 14
b := 14
if a < b {
fmt.Println("aはbより小さいです。")
} else if a > b {
fmt.Println("aはbより大きいです。")
} else {
fmt.Println("aとbは等しいです。")
}
}実行結果:
aとbは等しいです。5. 注意点:条件評価の優先順位
重要: もし condition1 と condition2 が両方とも true と評価される場合、最初に記述されている condition1 のコードブロックのみが実行されます。
5.1. 実装例
package main
import ("fmt")
func main() {
x := 30
if x >= 10 {
fmt.Println("xは10以上です。")
} else if x > 20 {
fmt.Println("xは20より大きいです。")
} else {
fmt.Println("xは10未満です。")
}
}実行結果:
xは10以上です。この例では、x が 30 であるため x >= 10 と x > 20 の両方が true となりますが、最初に合致した if ブロックの処理のみが行われ、それ以降の else if は評価されません。