Menu
Coddy logo textTech

式を伴う `switch`

CoddyのGOジャーニー「基礎」セクションの一部。レッスン 40/109。

Go のswitch 式について学びましょう。switch 式を使うと、switch 文で値を直接評価できます。

まず、式を使った switch 文で、数値が正、負、またはゼロかどうかを確認する方法を見てみましょう。

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

このコードを実行すると、プログラムは画面に次のように表示します。

Negative number

switch { の後に値を指定していないことに注目してください。これは、Go が各 case 式をブール条件として評価することを意味します。num は -5 なので、2 番目の case num < 0 は true と評価され、「Negative number」と出力されます。

switch 文の中で変数をその場で初期化することもできます。どのように動作するか見てみましょう。

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

このコードを実行すると、同じ結果が得られます。

Negative number

この例では、num を switch 文の中で直接宣言し、初期化しました。セミコロンは初期化と switch 式(ここでは空です)を区切ります。これにより、同じ機能を維持しながらコードをより簡潔にできます。

challenge icon

チャレンジ

初心者
このチャレンジでは、Go のシンプルな switch 式の使い方を練習します。名前に基づいて日の説明を決定するために、switch 文を使ってコードを完成させる必要があります。

変数 dayName には、値 "Wednesday" がすでに定義されています。あなたの課題は、switch 式を使って、description 変数を次のように設定することです。
- 月曜日の Monday には "Start of the week"
- 水曜日の Wednesday には "Midweek"
- 金曜日の Friday には "Almost weekend"
- 土曜日の Saturday または日曜日の Sunday には "Weekend"
- その他の任意の日には "Regular day"

自分で試してみよう

package main

import "fmt"

func main() {
	// 曜日名はすでに定義されています
	dayName := "Wednesday"
	
	// 説明を格納する変数
	var description string
	
	// TODO: dayNameに基づいてdescriptionを設定するswitch文を書いてください
	// 月曜日の場合: "Start of the week"
	// 水曜日の場合: "Midweek"
	// 金曜日の場合: "Almost weekend"
	// 土曜日または日曜日の場合: "Weekend"
	// その他の日の場合: "Regular day"
	
	
	// 結果を出力する
	fmt.Printf("%s is %s\n", dayName, description)
}
quiz icon腕試し

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

基礎のすべてのレッスン

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