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

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

ifの概要

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

if

概要ifは、条件が満たされた場合に特定の処理を実行するためのキーワードです。

  • 条件式がtrueの場合に、ifブロック内の処理が実行される。
  • elseを使うことで、条件が満たされなかった場合の処理を記述できる。
  • else ifを使うと、複数の条件を順番に評価できる。

基本的なifの使い方

以下のコードは、整数の値をチェックし、条件に応じたメッセージを表示する基本的な例です。

package main

import "fmt"

func main() {
    num := 10

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

解説:

  • if num > 10 の条件がtrueなら、「10より大きい」と出力される。
  • この例では、numが10なので、何も出力されない。

実行結果:

(出力なし)

if-elseを使った条件分岐

ifelseを組み合わせることで、条件が満たされなかった場合の処理を追加できます。

package main

import "fmt"

func main() {
    num := 10

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

解説:

  • if num > 10 の条件が満たされなかった場合、elseブロックの処理が実行される。
  • この例では、numが10のため、「10以下」と出力される。

実行結果:

10以下

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

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

package main

import "fmt"

func main() {
    score := 85

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

解説:

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

実行結果:

評価: B

ifの短縮構文(変数宣言付き)

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より大きい

注意事項

  • if文の条件式は括弧で囲まない: Goでは、if (num > 10) のように括弧をつけるとエラーになる。
  • elseの前に改行しない: Goでは、elseを新しい行に書くとコンパイルエラーになる。
  • 短縮構文の変数はスコープ内のみで有効: if num := 10; num > 5 で定義したnumifelseの中でしか使えない。

よくある質問

Q: if文の条件に括弧をつけるべきですか?
A: いいえ。Goではifの条件式に括弧をつける必要はなく、つけるとコンパイルエラーになります。
Q: elseの前に改行するとエラーになるのはなぜですか?
A: Goの構文ルールでは、ifの閉じカッコとelseは同じ行に書く必要があります。
Q: ifの短縮構文はどこで使うべきですか?
A: 例えば、関数の戻り値をif内でチェックし、即座に処理を行いたい場合に便利です。
Q: else ifは何回でも使えますか?
A: はい。必要に応じて何回でも使用できますが、多すぎると可読性が低下するため、適切に整理することが推奨されます。

まとめ

  • ifは条件がtrueの場合に処理を実行する。
  • elseを使うと、条件が満たされなかった場合の処理を追加できる。
  • else ifを使うことで、複数の条件を順番に評価できる。
  • 短縮構文を使うと、if文の中で変数を宣言できる。
  • 条件式の括弧は不要で、elseは改行せずに書く必要がある。