🤔
条件分岐 ( Go入門連載 第3回 )
シリーズの目次
if文
-
if 条件式 {}
で処理を分岐できる - 条件式の結果が
true
なら{}
内を処理 - 条件式は
()
で囲まなくてOK
func main() {
animal := "dog"
if animal == "dog" {
println("It is equal!!")
}
}
-
else
は if がfalse
の場合にelse {}
内の処理を実行する
func main() {
animal := "cat"
if animal == "dog" {
println("It is equal!!")
} else {
println("It is not equal!!")
}
}
-
else if
は if がfalse
の場合のみ評価される - 式の結果が
false
であればelse if 条件{}
内を処理 -
else if
が false の場合はelse {}
内を処理
func main() {
animal := "cat"
if animal == "dog" {
println("It is dog!!")
} else animal == "cat" {
println("It is cat!!")
} else {
println("It is other animal")
}
}
- if で
;
を使うと、代入と式を1行で書ける - この書き方で宣言した変数のスコープはこの一連のifの中のみである(elseも含む)
func main() {
if animal := "fox"; animal == "dog" {
println("It is dog!!")
} else {
println("It is other animal")
}
}
Switch文
-
switch 条件式 {}
で条件分岐できる -
case 値:
で式の結果と一致した値のcase
文は実行される - 値は式が返す型と同じ型でなければいけない
func main() {
name := "dog"
switch animal {
case "dog":
println("It is dog!!")
case "cat":
println("It is cat!!")
case "fox":
println("It is fox!!")
}
}
-
case
の処理が終わったらそのまあまswitchブロックを抜ける - 抜けずにそのまま次の
case
の処理をしたい場合はfallthrough
を使う
func main() {
name := "dog"
switch animal {
case "dog":
println("It is dog!!")
fallthrough
case "cat":
println("It is cat!!")
}
}
-
case
でも式を使える、その場合switch
の後ろに式を書かない。 - それぞれの
case
で違うデータ型を使える
func main() {
name := "dog"
switch {
case 1 == 1:
println("1==1")
case "cat" == "dog":
println("cat==dog")
}
}
演習問題
今回の演習ではこの問題を解いていきましょう!!
回答例(分からなかった場合のみ確認してください)
package main
import "fmt"
func main() {
var n, a int
fmt.Scan(&n, &a)
if n % 500 <= a {
fmt.Println("Yes")
} else {
fmt.Println("No")
}
}
Discussion