ifの概要
| 条件分岐の制御 Goの予約語 | ||
|
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を使った条件分岐
ifとelseを組み合わせることで、条件が満たされなかった場合の処理を追加できます。
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のように、条件の前で変数を定義できる。- この変数は
ifとelseのスコープ内でのみ有効。
実行結果:
10より大きい
注意事項
- if文の条件式は括弧で囲まない: Goでは、
if (num > 10)のように括弧をつけるとエラーになる。 - elseの前に改行しない: Goでは、
elseを新しい行に書くとコンパイルエラーになる。 - 短縮構文の変数はスコープ内のみで有効:
if num := 10; num > 5で定義したnumはifとelseの中でしか使えない。
よくある質問
- 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は改行せずに書く必要がある。