Go言語におけるif-else文の覚書。
基本構文
if 条件式 {
処理A
} else {
処理B
}
以下サンプル。
if_else1.go
package main
import (
"fmt"
"strconv"
)
func main() {
num := 15
var str string
str = strconv.Itoa(num)
//if-elseによる条件分岐
if num >= 10 {
fmt.Println(str, ":", "変数numは10以上です。") //15 : 変数numは10以上です。
} else {
fmt.Println(str, ":", "変数numは10未満です。")
}
}
if文の条件の分岐を複数実行するには、else ifブロックを作って投入する。以下の条件に沿って処理が実行される。
- 条件式Aが成立する場合は処理A
- 条件式Bが成立する場合は処理B
- これらの条件が成立しなかった場合は処理C
ただし条件が成立した時点で処理が終了するため、記述方法には注意する。
if 条件式A {
処理A
} else if 条件式B {
処理B
} else {
処理C
}
if_else2.go
package main
import (
"fmt"
"strconv"
)
func main() {
num := 6
var str string
str = strconv.Itoa(num)
//if-else文で複数条件分岐するには、"else if"を挟む。
if num >= 10 {
fmt.Println(str, ":", "変数num は10以上です。")
} else if num >= 5 {
fmt.Println(str, ":", "変数num は5以上10未満です。") //6 : 変数num は5以上10未満です
} else {
fmt.Println(str, ":", "変数num は5未満です。")
}
}
Python置き換えパターン。
def main():
num = 4
s = str(num)
# Pythonの複数条件分岐ブロックは "else if"ではなく"elif"とする。
if num >= 10:
print(s, ":", "変数numは10以上です。")
elif num >= 5:
print(s, ":", "変数numは5以上10未満です。")
else:
print(s, ":", "変数numは5未満です。") # 4 : 変数numは5未満です。
if __name__ == "__main__":
main()
追記。引数を与えてそれに応じて処理するパターンやってみた。
if_args.go
package main
import (
"flag"
"fmt"
"strconv"
)
func main() {
flag.Parse()
//引数をintに変換する
arg := flag.Arg(0)
var i int
var str string=arg
i, _ = strconv.Atoi(str)
//引数の値に応じて出力を分岐
if i >= 100 {
fmt.Println("変数iは100以上です。")
} else {
fmt.Println("変数iは100未満です。")
}
}
結果
$ go run if_args.go 100
変数iは100以上です。
$ go run if_args.go 101
変数iは100以上です。
$ go run if_args.go 99
変数iは100未満です。
参考
【Go入門】ifによる条件分岐とelse if, elseブロック