式を伴わない `switch`
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 41/109。
Goでは、キーワードの後に式の指定がないswitch文を使用できます。これは、複数の条件をすっきりと評価したい場合に便利です。
年齢に基づいて人を分類するプログラムを作成しましょう:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}このコードを実行した後、プログラムは各case条件を順番にチェックします。年齢が25歳なので、13未満でも20未満でもありませんが、30未満であるため、3番目のcaseが一致します。画面には "Young Adult" というテキストが表示されます:
Young Adultswitch の後に式がない場合、各 case は true または false に評価される boolean 条件になることに注意してください。true と評価された最初の case のコードブロックが実行されます。
どのケースにも一致しない場合、default ケースが実行されます。この例では、age が 35 の場合、出力は "Adult" になります。
チャレンジ
簡単このチャレンジでは、式を持たない switch 文の使用を練習します。このタイプの switch は、if-else 文を繰り返さずに複数の条件を評価したい場合に便利です。
現在の時刻(24時間形式)を表す変数 timeOfDay を用意しました。あなたのタスクは、式のない switch 文を完成させて、時間帯に基づいた適切な挨拶を出力することです。
チートシート
式のないswitch文を使用すると、複数の条件をすっきりと評価できます:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}各caseは、trueまたはfalseに評価されるブール条件になります。trueと評価された最初のcaseのコードブロックが実行されます。どのcaseも一致しない場合は、defaultケースが実行されます。
自分で試してみよう
package main
import "fmt"
func main() {
// これは24時間形式(0-23)の現在の時刻を表します
timeOfDay := 14 // これは午後2時です
// TODO: 式のないswitch文を完成させて、
// 時間帯に基づいた適切な挨拶を表示してください
switch {
// ここにケースを追加してください
default:
fmt.Println("Hello!")
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。