Menu
Coddy logo textTech

式を伴わない `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 Adult

switch の後に expression がない場合、各 case は true または false のいずれかに評価されるブール条件になることに注意してください。true に評価された最初の case が、そのコードブロックを実行します。

どの cases も一致しない場合、default case が実行されます。この例では、age が35の場合、出力は "Adult" になります。

challenge icon

チャレンジ

簡単

このチャレンジでは、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!(すでに記述されている default case)

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!")
	}
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Goオンラインコンパイラ