JavaA2Z

KAB-studio > プログラミング > JavaA2Z > caseとは

case

日本語 場合
英語 case
ふりがな けーす
フリガナ ケース

解説

switchの「飛び先」を指定する予約語
 
switchブロック内でのみ記述できる予約語
「case 定数:」という形式で記述する。
 
switch( 整数変数 ){ case 定数: 処理 }」という形式で、「整数変数」に格納された値と同じ「定数値」の直後の「処理」が実される。
通常は「switch( 整数変数 ){ case 定数値1: 処理1 case 定数値2: 処理2 case 定数値3: 処理3 default: デフォルト処理 }」のように複数のcaseと「定数値」を用意することで、「整数変数」に格納された値によって処理1~3のうちのどれかを処理させる。
 
caseは「ラベル」の一種で、「switchラベル」と呼ばれる。
処理が移動するための単なる「印」であり、ブロックステートメントを必要としない。
ifステートメントと異なり「switchからcaseへと飛ぶ」だけで、「case内のブロックが処理される」といったことはない。
そのため、caseに飛んだ後はそのままごく普通に処理が流れる事になり、そのあとに他のcaseがある場合、それらも処理してしまう。
そのため、通常はcaseで飛んだ後の処理の最後にbreakswitchから抜けるようにする。
逆にこの性質を利用して、複数の条件で共通の処理をうこともできる。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 一般的なswitchステートメントは以下のようになります。
        int i = 1;
        //      ↓このiの中身をチェックします。
        switch( i )
        {
        case 0:    // 「case」の後の値と「i」が一致した箇所に移ります。
            System.out.println( "ぜろ" );
            break;
        case 1:    // ですので、この例ではここに移ります。
            System.out.println( "いち" );
            // いち
            break;    // breakでswitchの外に出ます。
        case 2:
            // 直前で、breakで抜けているのでここには来ません。
            System.out.println( "に" );
            break;
        default:
            System.out.println( "でふぉると" );
            break;
        }
        // breakでここに抜けます。

        // breakで止めないとこんなことになります。
        switch( 0 )
        {
        case 0:
            System.out.println( "ぜろ" );
        case 1:
            System.out.println( "いち" );
        case 2:
            System.out.println( "に" );
        default:
            System.out.println( "でふぉると" );
        }
        // ぜろ
        // いち
        // に
        // でふぉると
        // つまりcase 0:に飛んだ後、そのままcase 1:以降も処理されたわけです。
        // 代わりに、ひとつの処理を複数のcaseで共有することもできます。

        // breakで止めないとこんなことになります。
        switch( 0 )
        {
        case 0:
        case 1:
        case 2:
            System.out.println( "ぜろ~に" );
        }
        // ぜろ~に
        // この場合、0 1 2どれでも同じ処理が行われます。

        // caseには定数値、つまり整数リテラルしか使用できません。
        switch( 0 )
        {
        // case i:
        // case 式は定数式でなければなりません。
        }

        // caseはswitchブロックの外では記述できません。
        // case 0:
        // コンパイルエラー:
        // キーワード "case" に構文エラーがあります。正しくは "}" です。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 一般的なswitchステートメントは以下のようになります。
        int i = 1;
        //      ↓このiの中身をチェックします。
        switch( i )
        {
        case 0:    // 「case」の後の値と「i」が一致した箇所に移ります。
            System.out.println( "ぜろ" );
            break;
        case 1:    // ですので、この例ではここに移ります。
            System.out.println( "いち" );
            // いち
            break;    // breakでswitchの外に出ます。
        case 2:
            // 直前で、breakで抜けているのでここには来ません。
            System.out.println( "に" );
            break;
        default:
            System.out.println( "でふぉると" );
            break;
        }
        // breakでここに抜けます。

        // breakで止めないとこんなことになります。
        switch( 0 )
        {
        case 0:
            System.out.println( "ぜろ" );
        case 1:
            System.out.println( "いち" );
        case 2:
            System.out.println( "に" );
        default:
            System.out.println( "でふぉると" );
        }
        // ぜろ
        // いち
        // に
        // でふぉると
        // つまりcase 0:に飛んだ後、そのままcase 1:以降も処理されたわけです。
        // 代わりに、ひとつの処理を複数のcaseで共有することもできます。

        // breakで止めないとこんなことになります。
        switch( 0 )
        {
        case 0:
        case 1:
        case 2:
            System.out.println( "ぜろ~に" );
        }
        // ぜろ~に
        // この場合、0 1 2どれでも同じ処理が行われます。

        // caseには定数値、つまり整数リテラルしか使用できません。
        switch( 0 )
        {
        // case i:
        // case 式は定数式でなければなりません。
        }

        // caseはswitchブロックの外では記述できません。
        // case 0:
        // コンパイルエラー:
        // キーワード "case" に構文エラーがあります。正しくは "}" です。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/02/20
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。