switchステートメント
日本語 | 切り替え命令 |
英語 | switch statement |
ふりがな | すいっちすてーとめんと |
フリガナ | スイッチステートメント |
switchを使用した分岐文。
ステートメントの一種。
予約語「switch」を用いたステートメント。
ステートメントとしては「switch( 評価式 ){}」という形式となる。
評価式にはbyte、short、int、charの値のみ使用できる。変数か定数かは問われない。
long、boolean、参照は評価式に使用できない。
通常は評価式には「整数型変数」を使用し、「switch( 整数型変数 ){ case 定数値: 処理 }」という形式で記述する。
「整数型変数」に格納された値と同じ「定数値」の直後の「処理」が実行される。
この「case 定数値:」は「switchラベル」と呼ばれ、ラベルの一種と見なされる。
また予約語「default」も「default:」という形でラベルとして記述できる。
ブロック内では、breakステートメントを記述することができる。
ラベルを指定しないbreakでは、switchブロックの直後へと処理が移る。
ラベルを指定した場合には、そのラベルで指定したラベルステートメント(通常はブロック)の直後へと処理が移る。
ブロック内は通常のブロックと見なされるため、上記のswitchラベルとbreak以外は他のブロックと同様の記述を行うことができる。
switchステートメントの使用方法については以下の項目も参照のこと。
・switch
・case
・default
・break
ステートメントの一種。
予約語「switch」を用いたステートメント。
ステートメントとしては「switch( 評価式 ){}」という形式となる。
評価式にはbyte、short、int、charの値のみ使用できる。変数か定数かは問われない。
long、boolean、参照は評価式に使用できない。
通常は評価式には「整数型変数」を使用し、「switch( 整数型変数 ){ case 定数値: 処理 }」という形式で記述する。
「整数型変数」に格納された値と同じ「定数値」の直後の「処理」が実行される。
この「case 定数値:」は「switchラベル」と呼ばれ、ラベルの一種と見なされる。
また予約語「default」も「default:」という形でラベルとして記述できる。
ブロック内では、breakステートメントを記述することができる。
ラベルを指定しないbreakでは、switchブロックの直後へと処理が移る。
ラベルを指定した場合には、そのラベルで指定したラベルステートメント(通常はブロック)の直後へと処理が移る。
ブロック内は通常のブロックと見なされるため、上記のswitchラベルとbreak以外は他のブロックと同様の記述を行うことができる。
switchステートメントの使用方法については以下の項目も参照のこと。
・switch
・case
・default
・break
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 最も単純なswitchステートメント。
switch( 0 ){}
// 評価式(上記の「0」の箇所)には、
// byte、short、int、charの整数値型しか使用できません。
// switch( "あいうえお" ){}
// コンパイルエラー:
// case 定数は String でなく char、byte、short、または int でなければなりません。
// 実はlong型も使用できません。
// switch( 0L ){}
// コンパイルエラー:
// case 定数は long でなく char、byte、short、または int でなければなりません。
// boolean型も使用できません。
// switch( true ){}
// コンパイルエラー:
// case 定数は boolean でなく char、byte、short、または int でなければなりません。
// ブロックを他のステートメントに置き換えることは
// できません。
// switch( 0 ) int i = 0;
// コンパイルエラー:
// キーワード "int" に構文エラーがあります。正しくは "{" です。
// 一般的なswitchステートメントは以下のようになります。
int i = 1;
switch( i )
{
case 0: // このcaseを「switchラベル」と言います。この値が評価式と一致した箇所に移ります。
System.out.println( "ぜろ" );
break; // breakでswitchの外に出ます。
case 1:
System.out.println( "いち" );
break;
case 2:
System.out.println( "に" );
break;
default:
System.out.println( "でふぉると" );
break;
}
// いち
// breakがないとそのまま次の行へと移ります。
switch( 1 )
{
case 0:
System.out.println( "ぜろ" );
break;
case 1: // ここへ飛びます。
System.out.println( "いち" );
// break; // たとえばこれをコメントアウトすると、
case 2:
// ここまで通過します。
System.out.println( "に" );
break;
default:
System.out.println( "でふぉると" );
break;
}
// いち
// に
// ラベルを用いたbreakステートメントを使用することができます。
label_out:
{
// 100回ループ。
for( int iF1 = 0; iF1 < 100; ++iF1 )
{
switch( 1 )
{
case 0:
System.out.println( "ぜろ" );
break;
case 1: // ここへ飛びます。
System.out.println( "いち" );
break label_out; // label_outラベルを指定します。
case 2:
// ここまで通過します。
System.out.println( "に" );
break;
default:
System.out.println( "でふぉると" );
break;
}
}
}
System.out.println( "label_outラベルのブロックの直後。" );
// いち
// label_outラベルのブロックの直後。
// このように、ラベル用いてブロックを指定して
// breakすることもできます。
}
}
public class Sample
{
public static void main( String[] args )
{
// 最も単純なswitchステートメント。
switch( 0 ){}
// 評価式(上記の「0」の箇所)には、
// byte、short、int、charの整数値型しか使用できません。
// switch( "あいうえお" ){}
// コンパイルエラー:
// case 定数は String でなく char、byte、short、または int でなければなりません。
// 実はlong型も使用できません。
// switch( 0L ){}
// コンパイルエラー:
// case 定数は long でなく char、byte、short、または int でなければなりません。
// boolean型も使用できません。
// switch( true ){}
// コンパイルエラー:
// case 定数は boolean でなく char、byte、short、または int でなければなりません。
// ブロックを他のステートメントに置き換えることは
// できません。
// switch( 0 ) int i = 0;
// コンパイルエラー:
// キーワード "int" に構文エラーがあります。正しくは "{" です。
// 一般的なswitchステートメントは以下のようになります。
int i = 1;
switch( i )
{
case 0: // このcaseを「switchラベル」と言います。この値が評価式と一致した箇所に移ります。
System.out.println( "ぜろ" );
break; // breakでswitchの外に出ます。
case 1:
System.out.println( "いち" );
break;
case 2:
System.out.println( "に" );
break;
default:
System.out.println( "でふぉると" );
break;
}
// いち
// breakがないとそのまま次の行へと移ります。
switch( 1 )
{
case 0:
System.out.println( "ぜろ" );
break;
case 1: // ここへ飛びます。
System.out.println( "いち" );
// break; // たとえばこれをコメントアウトすると、
case 2:
// ここまで通過します。
System.out.println( "に" );
break;
default:
System.out.println( "でふぉると" );
break;
}
// いち
// に
// ラベルを用いたbreakステートメントを使用することができます。
label_out:
{
// 100回ループ。
for( int iF1 = 0; iF1 < 100; ++iF1 )
{
switch( 1 )
{
case 0:
System.out.println( "ぜろ" );
break;
case 1: // ここへ飛びます。
System.out.println( "いち" );
break label_out; // label_outラベルを指定します。
case 2:
// ここまで通過します。
System.out.println( "に" );
break;
default:
System.out.println( "でふぉると" );
break;
}
}
}
System.out.println( "label_outラベルのブロックの直後。" );
// いち
// label_outラベルのブロックの直後。
// このように、ラベル用いてブロックを指定して
// breakすることもできます。
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 最も単純なswitchステートメント。 switch( 0 ){} // 評価式(上記の「0」の箇所)には、 // byte、short、int、charの整数値型しか使用できません。 // switch( "あいうえお" ){} // コンパイルエラー: // case 定数は String でなく char、byte、short、または int でなければなりません。 // 実はlong型も使用できません。 // switch( 0L ){} // コンパイルエラー: // case 定数は long でなく char、byte、short、または int でなければなりません。 // boolean型も使用できません。 // switch( true ){} // コンパイルエラー: // case 定数は boolean でなく char、byte、short、または int でなければなりません。 // ブロックを他のステートメントに置き換えることは // できません。 // switch( 0 ) int i = 0; // コンパイルエラー: // キーワード "int" に構文エラーがあります。正しくは "{" です。 // 一般的なswitchステートメントは以下のようになります。 int i = 1; switch( i ) { case 0: // このcaseを「switchラベル」と言います。この値が評価式と一致した箇所に移ります。 System.out.println( "ぜろ" ); break; // breakでswitchの外に出ます。 case 1: System.out.println( "いち" ); break; case 2: System.out.println( "に" ); break; default: System.out.println( "でふぉると" ); break; } // いち // breakがないとそのまま次の行へと移ります。 switch( 1 ) { case 0: System.out.println( "ぜろ" ); break; case 1: // ここへ飛びます。 System.out.println( "いち" ); // break; // たとえばこれをコメントアウトすると、 case 2: // ここまで通過します。 System.out.println( "に" ); break; default: System.out.println( "でふぉると" ); break; } // いち // に // ラベルを用いたbreakステートメントを使用することができます。 label_out: { // 100回ループ。 for( int iF1 = 0; iF1 < 100; ++iF1 ) { switch( 1 ) { case 0: System.out.println( "ぜろ" ); break; case 1: // ここへ飛びます。 System.out.println( "いち" ); break label_out; // label_outラベルを指定します。 case 2: // ここまで通過します。 System.out.println( "に" ); break; default: System.out.println( "でふぉると" ); break; } } } System.out.println( "label_outラベルのブロックの直後。" ); // いち // label_outラベルのブロックの直後。 // このように、ラベル用いてブロックを指定して // breakすることもできます。 } }