`fallthrough` キーワード
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 42/109。
Goでは、fallthroughキーワードを使用することで、switch文で一致が見つかった後でも次のケースの実行を継続できます。これがどのように機能するか見てみましょう。
まず、fallthrough キーワードを使用して数値を説明する単純な switch 文を作成しましょう:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}このコードを実行すると、3つのメッセージすべてが画面に表示されます:
Less than 20 Greater than 10 Positive numberこれは、最初のケースが一致し(15 は 20 より小さいため)、fallthrough キーワードによって Go は強制的に 2 番目のケースも実行するためです。次に、2 番目のケースも fallthrough を使用しているため、Go は 3 番目のケースも実行します。fallthrough がなければ、一致した最初のケースのみが実行されます。
fallthrough は、その条件が真(true)であるかどうかに関わらず、次のケースを実行することに注意してください。この例では、数値 15 に対してすべての条件がたまたま真になっていますが、たとえその条件が偽(false)であったとしても、次のケースが実行されます。
チャレンジ
初心者このチャレンジでは、switch文でのfallthroughキーワードの使用を練習します。fallthroughキーワードを使用すると、一致が見つかった後でも次のケースの実行を継続できます。
曜日を表す変数があります。あなたのタスクは、fallthroughキーワードを適切な場所に追加して、変数が 'Monday' のときにプログラムが 'It's a weekday!' と 'Time to work!' の両方を出力するようにすることです。
チートシート
fallthroughキーワードを使用すると、switch文で一致が見つかった後でも、次のcaseに実行を継続させることができます。
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}出力結果は次のようになります:Less than 20 Greater than 10 Positive number
fallthroughは、その条件が真(true)か偽(false)かに関わらず、次のcaseを実行します。
自分で試してみよう
package main
import "fmt"
func main() {
// 曜日を表す変数
day := "Monday"
// 曜日をチェックするための switch 文
switch day {
case "Monday":
fmt.Println("It's a weekday!")
// TODO: 次のケースへ進むために、ここに fallthrough キーワードを追加する
case "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("Time to work!")
case "Saturday", "Sunday":
fmt.Println("It's the weekend!")
default:
fmt.Println("Invalid day!")
}
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
6制御フロー:条件分岐
`if` 文`else` キーワード`else if` キーワード`if` における変数のシャドウイング変数の初期化`switch` 文式を伴う `switch`式を伴わない `switch``fallthrough` キーワードまとめ:条件分岐