Go言語のelseを使った条件分岐の方法についてわかりやすく解説

スポンサーリンク
スポンサーリンク

elseの概要

条件分岐の制御 Goの予約語

else

概要elseは、if文と組み合わせて、条件が偽(false)の場合に実行する処理を定義するために使用します。

  • ifの条件が満たされない場合に実行するコードを指定できる。
  • ifelseは必ずセットで使用される。
  • else ifelse + if)を使うことで、複数の条件をチェックできる。

基本的なelseの使い方

if文とelseを使った条件分岐の基本的な例を示します。

package main

import "fmt"

func main() {
    num := 10

    if num > 10 {
        fmt.Println("10より大きい")
    } else {
        fmt.Println("10以下")
    }
}

解説:

  • if num > 10 の条件を評価し、真なら「10より大きい」を出力。
  • 条件が偽なら、elseブロックの「10以下」が実行される。

実行結果:

10以下

else ifを使った複数条件の分岐

else ifを使うと、複数の条件を順番に評価できます。

package main

import "fmt"

func main() {
    num := 75

    if num >= 90 {
        fmt.Println("評価: A")
    } else if num >= 80 {
        fmt.Println("評価: B")
    } else if num >= 70 {
        fmt.Println("評価: C")
    } else {
        fmt.Println("評価: D")
    }
}

解説:

  • 条件を上から順番に評価し、最初に真になったブロックを実行する。
  • どの条件にも当てはまらない場合、最後のelseブロックが実行される。

実行結果:

評価: C

if-elseを一行で書く(短縮構文)

Goでは、if文の条件部分で変数を定義し、簡潔に記述できます。

package main

import "fmt"

func main() {
    if num := 15; num > 10 {
        fmt.Println("10より大きい")
    } else {
        fmt.Println("10以下")
    }
}

解説:

  • if num := 15; num > 10のように、条件の前で変数を定義できる。
  • この変数はifelseのスコープ内でのみ使用可能。

実行結果:

10より大きい

注意事項

  • elseの前に改行しない: Goではelseを新しい行に書くとコンパイルエラーになる。
  • 条件が複雑になりすぎる場合はswitchを検討: if-elseが多くなると可読性が低下するため、場合によってはswitchを使う方が良い。
  • if文の短縮構文で宣言した変数はスコープ内のみで有効: if num := 10; num > 5 で定義したnumifelseの中でしか使えない。

よくある質問

Q: elseの前に改行するとエラーになるのはなぜですか?
A: Goの構文ルールでは、ifの閉じカッコとelseは同じ行に書く必要があります。
Q: elseが不要な場合はありますか?
A: はい。例えば、ifの条件が真なら処理し、偽なら何もしない場合、elseを省略できます。
Q: 短縮構文の変数はif文の外で使えますか?
A: いいえ。if文内で定義した変数は、そのスコープ内でのみ有効です。
Q: else ifは何回でも使えますか?
A: はい。必要に応じて何回でも使用できますが、多すぎると可読性が低下するため注意が必要です。

まとめ

  • elseは、ifの条件が偽だった場合に実行する処理を指定する。
  • else ifを使うと、複数の条件を順番に評価できる。
  • 短縮構文を使うと、if文の中で変数を宣言できる。
  • elseを新しい行に書くとコンパイルエラーになるので注意が必要。