式を伴う `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 numberswitch { の後に値を指定していないことに注目してください。これは、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 式(ここでは空です)を区切ります。これにより、同じ機能を維持しながらコードをより簡潔にできます。
チャレンジ
初心者このチャレンジでは、Go のシンプルな
変数
- 月曜日の Monday には
- 水曜日の Wednesday には
- 金曜日の Friday には
- 土曜日の Saturday または日曜日の Sunday には
- その他の任意の日には
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)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ