導入
「もし〜なら」で処理を分けるのが if です。Go の if は条件を 丸カッコで囲みませんが、ブロックの {} は必須です。
説明
package main
import "fmt"
func main() {
score := 72
if score >= 80 {
fmt.Println("合格(優)")
} else if score >= 60 {
fmt.Println("合格")
} else {
fmt.Println("不合格")
}
}
- 条件式にカッコは不要(
if score >= 80)。 {はifと同じ行に置く(改行するとコンパイルエラー)。else/else ifは、前のブロックを閉じる}と同じ行に書きます。
Go には「if の中でだけ使う変数」を条件の前に宣言できる書き方があります。
if n := score % 2; n == 0 {
fmt.Println("偶数です")
} else {
fmt.Println("奇数です", n)
}
n := score % 2; で作った n は、この if〜else の中だけで有効です。使う範囲を最小に絞れるので、Go でよく使われる書き方です。
やってみよう
score の値を色々変えて、どのメッセージが表示されるか追ってみましょう。>= を > に変えると境界(ちょうど 80 点など)の判定が変わります。
演習
score を 55 に変えて、不合格 と表示されるようにしてください。
ヒント1を見る
変えるのは score := 72 の値だけです。if の条件は触りません。
ヒント2を見る
55 は >= 80 でも >= 60 でもないので、最後の else の枝に入ります。