はじめに
こんにちは。キノコードです。
「【5分レッスン】Go超入門コース#10 条件分岐」について説明します。
分岐処理とは?
この動画では、Go言語の条件分岐について説明します。
条件分岐は、プログラムの3つの基本構造の1つです。
条件分岐があることで、プログラムでできることが格段と広がります。
どのプログラミングにもあるものになるので、ぜひ習得してください。
最後に確認問題もあるので、ぜひ挑戦してみてください。
このレッスンで説明する内容は、こちらです。
レッスン4の「プログラムの基本構造」で説明しましたが、プログラムの基本的な動きは「順次進行」「条件分岐」「繰り返し」の3つです。
条件分岐とは、条件に合致する場合は「処理A」、そうじゃないときは「処理B」ということができます。
if文
条件分岐の代表例が、if文です。
Go言語のきまりをみてみましょう。
if 条件 {
条件を満たしたときの処理
}
まずif文を記述します。
if文に続けて、「条件」を書きます。
波括弧の中に条件を満たしたときの処理を記述します。
この部分はインデントを開けます。
実際に、コードを書いて行く前に、どんなコードを書くか説明します。
ageという変数になんらかの数値を代入。
ageという変数の値が20以上なら大人という意味のadultを表示させて、20未満なら子供という意味のchildを表示させるといった処理です。
コードを書いてみていきましょう。
package main
import fmt"
func main(){
age := 22
if age >= 20 {
fmt.Println("adult")
}
}
年齢という意味のageという変数に「22」という数値を代入します
if文の条件にageが20以上と記述します。
波括弧の中に条件を満たしたときの処理を記述します。
条件を満たしたときに大人という意味のadultを表示させたいので、pringlnでadultを記述します。
22は、20以上です。条件を満たすので、「adult」が表示されるはずです。
実行してみましょう。adultが表示されました。
package main
import fmt"
func main(){
age := 18
if age >= 20 {
fmt.Println("adult")
}
}
ageという変数に「18」を代入してみましょう。
条件を満たさないので、何も表示されないはずです。実行してみましょう。
何も表示されませんでした。
if ~ else文
次にif ~ else文についてみていきましょう。
先ほどみたように、ただのif文は、条件を満たさないとき、処理されずプログラムが終わります。
一方、if ~ else文は、条件を満たさないときの処理を記述・実行することができます。
if ~ else文のきまりをみてみましょう。
if 条件A {
条件Aを満たしたときの処理
} else {
条件を満たさないときの処理
}
先程のif文のあとに、elseと書きます。
elseのあとの波括弧。波括弧の中に、条件を満たさないときの処理を書きます。
ソースコードを見ていきましょう。
package main
import "fmt"
func main() {
age := 18
if age >= 20 {
fmt.Println("adult")
} else {
fmt.Println("child")
}
}
ageに代入する数値を18とします。if文の条件は先ほどと同じように、20歳以上とします。
まずelseを書きます。else以降の波括弧に、子供という意味の「child」を表示させる処理をかきます。
18は、20以上の条件を満たさないので、「child」が表示されるはずです。
実行してみましょう。else以下に処理が実行されて「child」が表示されました。
package main
import "fmt"
func main(){
age := 22
if age >= 20 {
fmt.Println("adult")
} else {
fmt.Println("child")
}
}
次に、ageに「22」を代入して実行してみましょう。
今度は条件を満たすので「adult」が表示されました。
if ~ elif ~ else文
もう一つ条件を加えたい場合に使うのが、else ifです。
きまりをみてみましょう。
if 条件A {
条件Aを満たしたときの処理
} else if 条件B {
条件Bを満たさないときの処理
} else {
条件を満たさないときの処理
}
先程の条件Aのif文のあとに、elseと半角スペース。次にifと書いて2つめの条件Bを書きます。
次の行に、「条件Bを満たしたときの処理」を書きます。この行も、インデントをひとつ右にずらして書きます。
コードを書いて見ていきましょう。
if文のあとにelse ifを記述します。ageが0なら「baby」を表示させる記述をしましょう。
ageの変数に「0」を代入します。
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")
}
}
ageは0なので、babyが表示されるはずです。
実行してみましょう。babyが表示されました。
簡易文付きif
最後に、Go言語のif文は、簡易的な書き方ができます。
具体的には、if文の中に、変数を宣言したり、変数に代入したり、四則演算の計算など簡易的な文を記述することができます。
書き方の決まりをスライドでみていきましょう。
if 簡易文 ; 条件A {
条件Aを満たしたときの処理
} else if 条件B {
条件Bを満たさないときの処理
} else {
条件を満たさないときの処理
}
書き方の決まりは、ifと条件文の間に、簡易文を記述します。
簡易文のあとにセミコロン。これで終わりです。
コードを書いてみていきましょう
簡易文のところでageの変数を宣言してみましょう。
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")
}
}
if文と条件式の間に簡易文を記述しました。
実行してみましょう。
エラーとならずに、先ほどと同じ結果が表示されました。
他にも四則演算もできます。
if文の外でxとyの変数を定義してxに10を代入、yに12を代入、それらをif文の中の簡易文で足してageに代入してみましょう。
package main
import "fmt"
func main(){
x := 10
y := 12
if age := x+y ; age >= 20 {
fmt.Println("adult")
} else if age == 0 {
fmt.Println("baby")
} else {
fmt.Println("child")
}
}
合計が22になるので、adultが表示されました。
ちなみに、簡易文は、if文の中でなければ使うことができません。
if文の外でageを表示させてみましょう。
package main
import "fmt"
func main(){
x := 10
y := 12
if age := x+y ; age >= 20 {
fmt.Println("adult")
} else if age == 0 {
fmt.Println("baby")
} else {
fmt.Println("child")
}
}
実行してみます。
エラーになりました。
ageをif文の中にいれてみます。
adultの後ろにageを記述してみましょう。
実行してみます。
adultと22が表示されました。
確認問題
最後に確認問題です。
演算子のところで勉強した論理演算子を使って条件式のところに5以上10未満という条件を記述しましょう。
そして変数に7と12を代入して予想通りの実行結果になるか試してみましょう
package main
import "fmt"
func main() {
x := 12
if x >= 5 && x < 10 {
fmt.Println("5以上10未満")
} else {
fmt.Println("それ以外")
}
}
それでは、解答です。
条件式のところに、5以上10未満という条件を書きます。
条件を満たした場合、「5以上10未満」と表示させました。
条件を満たさない場合、私は「それ以外」と表示させるふうな記述をしました。
それでは実行してみましょう。
条件を満たすので、「5以上10未満」が表示されました。
12を代入してみます。
「それ以外」が表示されました。