0x04a CASE_BLOCK_MISSING_BREAK

caseまたはdefaultブロックにbreakがありません


taiseiue | 2024-11-21

switch文にあるcaseブロックまたはdefaultブロックは、必ず次のどちらかのキーワードを使用して明示的に抜ける必要があります。

次の例を参照してください。

AliceScript
var i = 0;

switch(i)
{
    case 0:
    {
        print("This is 0 block.");
    }//ここでエラー
}

前処理指令を使用して、すべてのcaseブロックおよびdefaultブロックを自動的に抜けるようにすることもできます。次の例を参照してください。

AliceScript
//breakで抜けているか確認せず自動で抜けるように構成
#check_break_when_case disable

var i = 0;

switch(i)
{
    case 0:
    {
        print("This is 0 block.");
    }//エラーは発生しない
}

あるブロックから次のブロックへ移動する、いわゆるフォールスルーを実装したい場合、前処理指令を使用してコード中に明記する必要があります。次の例を参照してください。

AliceScript
//明示的にフォールスルーを許可する
#fall_through enable
var i = 0;

switch(i)
{
    case 0:
    {
        print("This is 0 block.");//まずこれが実行される
    }
    case 1:
    {
        print("This is 1 block.");//フォールスルーによって、これも実行される
    }
}