制御構文
If文
if 条件式{}と書いて、{}内で条件に当てはまった際実行する処理を書く。
例えば、変数numの値を2で割った余りが0の場合、「by2」と表示するif文の処理は以下のように書く。
num := 4
if num%2 == 0{
fmt.Println("by 2")
}
//by 2と出力される
また、if文の条件に当てはまらない場合の処理を作成するときは、if文のあとにelse節を書く。上記にif文の条件に当てはまらなかったとき、elseと表示させたい場合は以下のように書く。
num := 5
if num%2 == 0{
fmt.Println("by 2")
}else{
fmt.Println("else")
}
//elseと出力される
さらに、if文以外にも適用させたい条件がある場合はelse ifで条件と処理を記載する。
num := 9
if num%2 == 0{
fmt.Println("by 2")
} else if num%3 == 0{
fmt.Println("by 3")
} else {
fmt.Println("else")
}
//by 3と出力される
複数の条件がある場合
And条件を示したいときは、&&を使用する。
Or条件を示したいときは、||
x, y := 10, 10
if x == 10, y == 10 {
fmt.Println("&&")
}
if x == 10 || y == 10{
fmt.Println("||")
}
//
&&
||
と出力される
if文の条件式で変数を宣言する
変数numが2で割り切れればokを、割り切れなければnoを返すby2関数を作る。また、main関数の中でby2関数を使って、okが返ってきたときにgreatを出力する処理を作る。
func by2 (num int) string{
if num%2 == 0{
return "ok"
}else {
return "no"
}
}
func main () {
result := by2(10)
if result == "ok" {
fmt.Println("great")
}
}
//by2関数の引数は10のため、返り値がokとなる。そのため、main関数でgreatと出力される。
上記のコードでは、変数resultにby2関数の返り値を代入する処理と、if文の条件をそれぞれ分けて書いている。
このような変数への代入とif文の条件を1行にまとめて書く場合、if文のあとに変数を宣言し、;でつなげて条件を書く。
func by2 (num int) string{
if num%2 == 0{
return "ok"
}else {
return "no"
}
}
func main () {
if result2 := by2(10); result2 == "ok" { //変数への代入とif文をまとめて書いている
fmt.Println("great2")
}
}
1行にまとめて書く場合、変数の値を以降のプログラムで使用することはできない。そのため、変数の値をif文以降でも使うのであればまとめてかかないようにする必要がある。
学習に使用した教材
・『入門】Golang基礎入門 + 各種ライブラリ + 簡単なTodoWebアプリケーション開発(Go言語)』M.A EduTech
https://www.udemy.com/course/golang-webgosql/?utm_medium=udemyads&utm_source=bene-msa&utm_campaign=responsive&utm_content=top-1&utm_term=general&msclkid=81e2f24a32cc185d275d953d60760226&couponCode=NEWYEARCAREERJP
・『シリコンバレー一流プログラマーが教える Goプロフェッショナル大全』酒井 潤 (著)
https://www.amazon.co.jp/%E3%82%B7%E3%83%AA%E3%82%B3%E3%83%B3%E3%83%90%E3%83%AC%E3%83%BC%E4%B8%80%E6%B5%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%8C%E6%95%99%E3%81%88%E3%82%8B-Go%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E5%A4%A7%E5%85%A8-%E9%85%92%E4%BA%95-%E6%BD%A4/dp/4046070897