式を伴わない `switch`
CoddyのGOジャーニー「基礎」セクションの一部。レッスン 41/109。
Goでは、キーワードの後にswitch statement without an expressionを使用できます。これは、複数の条件をすっきりと評価したい場合に便利です。
年齢に基づいて人を分類するプログラムを作成しましょう:
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条件を順番に確認します。ageは25なので、13未満でも20未満でもありませんが、30未満です。そのため、3番目のcaseが一致します。画面には「Young Adult」というテキストが表示されます:
Young Adultswitch の後に expression がない場合、各 case は true または false のいずれかに評価されるブール条件になることに注意してください。true に評価された最初の case が、そのコードブロックを実行します。
どの cases も一致しない場合、default case が実行されます。この例では、age が35の場合、出力は "Adult" になります。
チャレンジ
簡単このチャレンジでは、expression なしで switch statement を使用する練習をします。この種類の switch は、if-else statement を繰り返さずに複数の条件を評価したい場合に便利です。
現在の時刻(24時間 format)を represents する timeOfDay 変数が用意されています。あなたのタスクは、expression なしの switch statement を完成させ、時刻に based して appropriate な greeting を print することです。
次の範囲を使用し、これらのメッセージを正確に print してください:
- 5 から 11:
Good morning! - 12 から 17:
Good afternoon! - 18 から 21:
Good evening! - その他の hour:
Hello!(すでに記述されているdefaultcase)
timeOfDay = 14 の場合、プログラムは Good afternoon! を print します。
自分で試してみよう
package main
import "fmt"
func main() {
// これは24時間形式(0-23)での現在の時刻を表します
timeOfDay := 14 // これは午後2:00です
// TODO: 式なしのswitch文を完成させてください
// 時刻に基づいて適切な挨拶を出力するため
switch {
// ここにケースを追加してください
default:
fmt.Println("Hello!")
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ