🤔
条件分岐 ( 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