1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Go言語-条件分岐

Last updated at Posted at 2021-01-06

条件分岐

プログラミング基本からGoの理解を文字におこして行こうと思います!
Go言語の基本❶はこちら
Go言語の基本❷はこちら

条件分岐とは

ある条件に当てはまるかどうかによって処理を分ける
例えば、明日の天気(条件)によって傘を持っていくか(処理)を変える

if文

package main
func main(){
  score := 100
  if score > 60 {
    println("合格") //条件が成り立つ時の処理
  }
}

//コンソール
合格

if文を用いると「もし○○ならば☓☓を行う」という条件分岐が可能

if文の条件式

package main
func main(){
  score := 100
  if score >= 60 {
    println("合格") //scoreが60より大きい時、もしくは等しい時に成り立つ
  }
}

//コンソール
合格

if文は、if 条件式 { 処理 } というように記述

真偽値

package main
func main(){
  score := 70
  println(score>60)
  println(score>80)
}

//コンソール
true
false

「真偽値型」には「true」と「false」という2つの値が存在

比較演算子を用いた条件式は、成り立つときは「true」
成り立たないときは「false」という値

比較演算子

package main
func main(){
  score := 100
  if score == 100 { //scoreが100の時true
  }
}
x == y  左右の値が等しい時 true
x != y  左右の値が等しくない時 true

比較演算子→等しいか調べる

代表的な比較演算子

//等しいか調べる
x == y  左右の値が等しい時 true
x != y  左右の値が等しくない時 true

//大小を比べる
x < y   右辺の方が大きい時 true
x > y   右辺の方が小さい時 true
x =< y  右辺の方が大きい、等しい時 true
x >= y  右辺の方が小さい、等しい時 true

else(条件に一致しない場合の処理)

package main
func main(){
  score := 50
  if score > 80 { 
    println("合格")
  } else {
      println("失格") //条件式の結果がfalseの時に実行
  }
}

//コンソール
失格

if文に「else」を組み合わせることで
「もし○○ならば●●を行う、そうでなければ▲▲を行う」という条件分岐ができる

else if(条件に一致しない場合、さらに条件分岐したい場合)

package main
func main(){
  score := 50
  if score == 100 { 
      println("卒業")
  } else if score >= 60 {
      println("合格")
  } else {
      println("追試")
 }
}

//コンソール
追試

else ifを用いると
「もし○○ならば●●を行う、△△ならば▲▲を行う、
どちらでもなければ□□を行う」という処理ができる

else if(2)

package main
func main(){
  score := 100
  if score == 100 { 
      println("卒業") //以降の処理は実行されない
  } else if score >= 60 {
      println("合格")
  } else {
      println("追試")
 }
}

//コンソール
卒業

「else if」はいくつでもつなげて書くことができる

上から順に条件が成り立つか判断され
最初に条件に合致した部分の処理だけが行われる

else if(2)

package main
func main(){
  score := 100
  if score == 100 { 
      println("卒業") //以降の処理は実行されない
  } else if score >= 60 {
      println("合格")
  } else {
      println("追試")
 }
}

//コンソール
卒業

かつ(&&)

package main
func main(){
  time := 12
  if time > 10 && time < 19 {
    println("仕事開始")
  }
}

&&を用いて複数の条件式を組み合わせると
全ての条件式がtrueの場合のみ全体としてtrueになる

//論理演算子
true && true      true
true && false     false
false && true     false
false && false    false

または(||)

package main
func main(){
  time := 15
  if time == 10 || time == 15 {
    println("おやつタイム")
  }
}

||を用いて複数の条件式を組み合わせると
複数の条件式のうち1つでもtrueであれば全体がtrueになる

//論理演算子
true  || true     true
true  || false    true
false || true     true
false || false    false

否定(!)

package main
func main(){
  time := 15
  if !(time == 16) {
    println("おやつタイムではない")
  }
}

!(条件式)とすると
条件式が「true」であれば「false」に、「false」であれば「true」

switch文

swich 条件の値 {
  case 値1:
    //処理
  case 値2:
    //処理
  case 値2:
    //処理
}

条件分岐にはif文のほかに、switch文という構文もある
条件の値がcaseの値と一致するとき、処理が実行

caseの後ろのコロン(:)などは忘れがちなので注意

if文とswitch文

//if文
x := 8
if x % 2 == 0 {
    println("偶数です")
} else if x % 2 == 1 {
    println("奇数です")
}
//switch文
x := 8
switch x % 2 {
  case 0: //一致
    println("偶数") //実行
  case 1:
    println("奇数")
}

switch文は「とある値(今回はx % 2)が何であるか」で処理を分けたいとき
(特にその分岐が多いとき)、if文よりシンプルに書ける場合がある

複数の値を指定する

//if文
year := 1994
if year == 1994 || year == 2005 { //1994がtrue
  println("私が産まれた年")
}else if year == 2000 {
   println("弟が産まれた年")
}
//switch文
year := 1994
switch year {
  case 1994,2005: //1994に一致
    println("私が産まれた年") //実行 
  case 2000:
    println("弟が産まれた年")
}

caseのあとの値は、コンマ(,)を用いて複数指定することができる

コンマで複数の値を指定すると
switchの値がいずれかに一致すれば、そのcaseの処理が実行

default

//if文
if rank == 1 {
     println("優勝")
} else if rank == 2 {
     println("準優勝")
} else if rank == 3 {
     println("3位")
} else {
     println("最下位")
}
//switch文
switch rank {
  case 1:
    println("優勝")
  case 2:
    println("準優勝")
  case 3:
    println("3位")
  default:
    println("最下位")

どのcaseとも一致しなかったときに実行する処理を、defaultに指定できる
if文のelseに似ている

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?