Menu
Coddy logo textTech

`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

これは、最初のケースが一致し(1520 より小さいため)、fallthrough キーワードによって Go は強制的に 2 番目のケースも実行するためです。次に、2 番目のケースも fallthrough を使用しているため、Go は 3 番目のケースも実行します。fallthrough がなければ、一致した最初のケースのみが実行されます。

fallthrough は、その条件が真(true)であるかどうかに関わらず、次のケースを実行することに注意してください。この例では、数値 15 に対してすべての条件がたまたま真になっていますが、たとえその条件が偽(false)であったとしても、次のケースが実行されます。

challenge icon

チャレンジ

初心者

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

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

基礎のすべてのレッスン