【5分レッスン】Go超入門コース#10 条件分岐

はじめに

こんにちは。キノコードです。
「【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を代入してみます。
「それ以外」が表示されました。

KinoCode チャンネル

YouTubeで毎日動画配信しています。
動画は3分間なので、
 ・通勤時間
 ・お昼休み
 ・お手すきのとき
 ・寝る前
など手軽に視聴できます。
 
ちょっとしたインプットにどうぞ!
 
▼チャンネル登録はこちらからどうぞ。