#条件分岐
分岐処理とは、ある条件が満たされるときのみ特定の処理を行い、そうでなければ別の処理をしたり、また別のある条件が満たされているときのみ特定の処理を行い、そうでなければ何もしないなどといった与えられた式の値でtrueかfalseに分け異なる処理を行うようにすることをいいます。
##if文
if 条件 { 条件を満たしたときの処理}
package main
import "fmt"
func main() {
age := 24
if age >= 20 {
fmt.Println("adult")
}
}
###実行結果
adult
##if~else文
if 条件 A { 条件Aを満たしたときの処理} else { 条件を満たさないときの処理}
package main
import "fmt"
func main() {
age := 18
if age >= 20 {
fmt.Println("adult")
} else {
fmt.Println("child")
}
}
###実行結果
child
##else~if文
if 条件 A { 条件Aを満たしたときの処理} else if 条件 B { 条件Bを満たさないときの処理} else { 条件を満たさないときの処理}
package main
import "fmt"
func main() {
age := 0
if age >= 20 {
fmt.Println("adult")
} else if age == 0 {
fmt.Println("baby")
} else {
fmt.Println("child")
}
}
###実行結果
baby
##if文の簡易的な書き方
if 簡易文; 条件 A { 条件Aを満たしたときの処理} else if 条件 B { 条件Bを満たさないときの処理} else { 条件を満たさないときの処理}
package main
import "fmt"
func main() {
if age := 0; age >= 20 {
fmt.Println("adult")
} else if age == 0 {
fmt.Println("baby")
} else {
fmt.Println("child")
}
}
###実行結果
baby
具体的には、if文の中に変数を宣言したり、変数に代入したり四則演算の計算など、簡易的な文を記述することができます。簡易文はif文の外では使えないので、if文の中で表示するよう記述します。
package main
import "fmt"
func main() {
x := 10
y := 12
if age := x + y; age >= 20 {
fmt.Println("adult", age)
} else if age == 0 {
fmt.Println("baby")
} else {
fmt.Println("child")
}
}
###実行結果
adult 22
##if文の応用(条件が満たされた場合のみ処理し、そうでなければ何もしない)
if文を使用して「5544」という数字を小さい値から、割り切れなくなるまで続けるプログラムを書いてみます。ifの後にtrueかfalseを与える式を置き、その式の値がtrueであれば{ }内に書かれた処理を行います。左側の整数を右側の整数で割った剰余を得る「%」剰余演算子を用いてthenをnで割った剰余が0であればtrueを返し、そうでなければfalseを返します。if then % n == 0 { (←trueならば)
そして、変数nの値を1つずつ増やしていくfor文により、繰り返し処理されます。if文の後の式の値がfalseであれば処理は行われず、次の繰り返し回にまわされます。if文の内容が実行されるたびに小さくなっていきます。
package main
import "fmt"
func main() {
then := 5544
fmt.Println(then)
for n := 2; n < then; n++ {
if then%n == 0 {
then /= n
fmt.Printf("を%dで割ると、%d\n", n, then)
}
}
}
###実行結果
5544
を2で割ると、2772
を3で割ると、924
を4で割ると、231
を7で割ると、33
を11で割ると、3