if文は正しいか正しくないかという判定によく使う制御構文である。

例えば、変数iが5ならば、「iに格納されている文字は5」と表示してみる。

package main

import "fmt"

func main() {
	var i int
	i = 5
	if i == 5 {
		fmt.Println("iに格納されている文字は5")
	}
}

if i == 5でiという値が、5であればを意味し、5であれば{}の中身を実行するという意味になる。

※fmt.Printlnというフォーマットの標準出力を使うことになったので、package main とfunc mainの間にimport "fmt"が実行した後に、自動的に挿入される。

※ちなみにiの中が5でない場合は、何も表示されない。


strに入っている文字がtestならば、「strに格納されている値はtest」という文を表記してみる場合は、

package main

import "fmt"

func main() {
	var str string
	str = "test"
	if str == "test" {
		fmt.Println("strに格納されている値はtest")
	}
}

今回は文字なので、var str stringと文字の値stringを定義しておくことと、str = "test"で””を入れることに注意する。

ifの横にあるstr == "test"は左の値と右の値が一致しているか調べる。試しにstrにhogeを代入すると、何も表示されない。

package main

import "fmt"

package main

import "fmt"

func main() {
	var str string
	str = "hoge"
	if str == "test" {
		fmt.Println("strに格納されている値はtest")
	}
}


ここで、strに入っている文字がtestならば、「strに格納されている値はtest」を表示し、testでなければ、「strに格納されている値はtestではありません」と表示させたい場合は、下記のように記載する。

package main

import "fmt"

func main() {
	var str string
	str = "hoge"
	if str == "test" {
		fmt.Println("strに格納されている文字はtest")
	}
	if str != "test" {
		fmt.Println("strに格納されている値はtestではありません")
	}
}

if str!= "test"の!=は左の値と右の値が一致していなければ正しいとする。後は、fmt.Printlnの()内の表示を「strに格納されている値はtestではありません」に変更した。

※!=は!と=の間にスペースを入れないこと。

上記の場合、ifを2回記載することになる。elseを使って、省略できる記載方法がある。


package main

import "fmt"

func main() {
	var str string
	str = "hoge"
	if str == "test" {
		fmt.Println("strに格納されている文字はtest")
	} else {
		fmt.Println("strに格納されている値はtestではありません")
	}
}

if str != "test"を } else { に変更した。これは、strに入っている文字がtest以外なら全てという意味になる。

今度は、strに入っている文字をdogにし、「strに格納されている値はtestもhogeでもありません」と表示したい場合は、下記のように記載する。


package main

import "fmt"

func main() {
	var str string
	str = "dog"
	if str == "test" {
		fmt.Println("strに格納されている文字はtest")
	} else if str == "hoge" {
		fmt.Println("strに格納されている値はhoge")
	} else {
		fmt.Println("strに格納されている値はhogeでもtestでもありません")
	}
}

ここでは、もう一つのhogeの場合を else ifで追加し、再度elseを最後の関数fmt.Printlnの前に追加記載した。


最後に練習で偶数か奇数かを判定する関数を自作パッケージの中に作ってみる(偶数であれば、true、奇数であればfalse)。

package ryoko

//trueだったら偶数、奇数だったらfalse
func JudgeEo(i int) bool {
	var res bool
	if i%2 == 0 {
		res = true
	} else {
		res = false
	}
	return res
}