Menu
Coddy logo textTech

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

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

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

challenge icon

チャレンジ

簡単

このチャレンジでは、式を持たない 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!")
	}
}
quiz icon腕試し

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

基礎のすべてのレッスン