式を伴う `switch`
CoddyのGOジャーニー「基礎」セクションの一部。レッスン 40/109。
Goで、各case内で条件を直接評価できるswitch文の式の使い方を学びましょう。
まず、数値が正、負、またはゼロかどうかを確認するために、それぞれのcaseに条件を指定した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式(ここでは空)を区切ります。これにより、同じ機能を保ちながらコードをより簡潔にできます。
チャレンジ
初心者switch式の使い方を練習します。switch文を使って、曜日の名前に基づいて説明を決めるコードを完成させましょう。変数
dayNameは、値"Wednesday"で定義済みです。switch式を使って、description変数に次の値を設定してください。- 月曜日の場合は
"Start of the week"- 水曜日の場合は
"Midweek"- 金曜日の場合は
"Almost weekend"- 土曜日または日曜日の場合は
"Weekend"- それ以外の曜日の場合は
"Regular day"自分で試してみよう
// TODO: dayName に基づいて description を設定する switch 文を書く
// Monday の場合: "Start of the week"
// Wednesday の場合: "Midweek"
// Friday の場合: "Almost weekend"
// Saturday または Sunday の場合: "Weekend"
// それ以外の曜日の場合: "Regular day"
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ