【Go言語 超入門コース】10.条件分岐|条件にあてはまればAという処理、あてはまらなければBという処理ができます!【プログラミング初心者向け入門講座】

Go超入門コース

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

はじめに

こんにちは。キノコードです。
「【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分間なので、
 ・通勤時間
 ・お昼休み
 ・お手すきのとき
 ・寝る前
など手軽に視聴できます。
 
ちょっとしたインプットにどうぞ!
 
▼チャンネル登録はこちらからどうぞ。
未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト