1. ホーム
  2. select

[解決済み] break文はswitch/selectから抜け出すのか?

2022-04-21 17:59:35

質問

私は、以下のことを知っています。 switch / select ステートメントは、すべてのケースの後で自動的にブレークします。次のようなコードではどうでしょうか。

for {
    switch sometest() {
    case 0:
        dosomething()
    case 1:
        break
    default:
        dosomethingelse()
    }
}

を実行しますか? break ステートメントを終了します。 for ループか、あるいは switch ブロックを作成しますか?

どのように解決するのですか?

<ブロッククオート

Break ステートメント、Go プログラミング言語仕様。

break"文は、最内部の"for"の実行を終了させます。 switch"または "select"ステートメントの実行を終了します。

BreakStmt = "break" [ Label ] .

ラベルがある場合、それは、"for", "switch" を囲んでいるラベルでなければなりません。 または "select"ステートメントのもので、実行が終了するものである必要があります。 (§For 文、§Switch 文、§Select 文)。

L:
  for i < n {
      switch i {
      case 5:
          break L
      }
  }

そのため break を終了させます。 switch ステートメント、つまり最も内側のステートメントです。