bam6o0の記憶域

忘備録になればいいな

Go言語の勉強記録8bit

条件分岐

  • if文とswitch文がある

if文

  • 処理の分岐に使う。
  • 書式
if 条件式{
  //処理
}else{
  //処理
}
  • else文は必須ではない
  • else ifは使用可能

実行結果

 $go run if.go
0 が偶数
1 は奇数
2 が偶数
3 は奇数
4 が偶数
  • if文の条件式の前に文を記述可能
  • 条件式の前にで区切って文を記述できる。
  • 省略書式を使った変数宣言などができる。
if x,y := hoge(i); x < y {
  fmt,Println(x, "<", y)
}else if x > y {
  fmt.Println(x, ">" y)
}else {
  fmt.Println(x, "=", y)
}

switch文

  • 処理の分岐
  • ifとの違いは複数の分岐を一度に記述できること
  • Goには型switchと式switchの2種類ある
  • Cのswitchに相当するのは式switch
  • 書式
switch 式{
case 式:
  //switch式の評価結果とcase説の式の評価結果一致している時の処理
case 式:
  //switch式の評価結果とcase説の式の評価結果一致している時の処理
default:
  //どのcase説にも一致しない時の処理
}

実行結果

$go run switch.go
0
1または2
1または2
その他
その他
  • case文は,で区切ると複数の式を記述可能
  • 複数の式のときはどれかが一致すれば処理実行
  • break文は不要
  • break文を明示的に記述することも可能
  • 下のcase文を実行したい時はfallthrough文を使う
  • fallthrough文はcase節の最後にしか記述できない。

実行結果

$go run fallthrough.go
Sunday 休日
Monday たぶん平日
Tuesday たぶん平日
Wednesday たぶん平日
Thursday たぶん平日
Friday たぶん平日
Saturday 休日
  • case節に式では数値、文字列、論理値など
  • switch文の式の評価結果 == case節の式の評価結果のとき実行
  • switch文の式を論理値turuに設定すればcase節の式には条件式が記述可能
  • switch文の式のtrueは省略可能
switch {
case:
case:
default:
}