<<前 [TOP] 次>>
メモ帳を開いて次のプログラムを作ってみましょう。
【SwitchTest.java】
public class SwitchTest { public static void main ( String[] args ) { char c = 'B'; switch (c) { case 'A': System.out.println ( "AAAAAAAAAA" ) ; break; case'B' : System.out.println ( "BBBBBBBBBB" ) ; break; case'C' : System.out.println ( "CCCCCCCCCC" ) ; break; default: System.out.println ( "0123456789" ) ; } } }
まず、switch文の構成を見てください。
switch (条件) { case'条件1': 実行文; break; case'条件2': 実行文; break; default: 実行文; }
このswitch文はif文と同じで条件分岐に使います。
if文より内容が直感的にわかり見やすいというのが特徴です。
ただ複雑な条件分岐には使用できないのが欠点です。
switchの条件に当てはまれば、caseが順番に処理されていきます。
caseの条件に当てはまれば実行文が実行されbreakでswitchを抜けます。
どのcaseにも当てはまらない場合は、defaultが処理されます。
defaultにbreakはいりません。
caseの条件は何個でもつなげることができます。
caseの後の条件はシングルコーテーション「'」で囲み、その後に必ずコロン「:」をつけます。
実行文が終わったら「break;」を記述します。
breakを忘れると無限ル ープとなる場合があるので注意してください。
case条件のどれにも当てはまらなかったら、defaultの内容が実行されます。
defaultは記述してもしなくてもどちらでも良いです。
break; が処理されると、switch文から抜けます。
ではプログラムの実行結果を確認しましょう。
今回は変数cをchar型で宣言しています。
char型は文字列を格納するのに使います。
メモ帳を開いて次のプログラムを作ってみましょう。
【SwitchTest2.java】
public class SwitchTest2 { public static void main ( String[] args ) { char c = 'B' ; switch (c) { case 'A': System.out.println ( "AAAAAAAAAA" ); case'B' : System.out.println( "BBBBBBBBBB" ); case'C' : System.out.println ("CCCCCCCCCC" ); default: System.out.println ( "0123456789 " ); } } }
break; の記述がないときどのような結果になるかを示すプログラムです。
無限ループにはなりませんが、case'B'以降のすべての実行文が実行されているのがわかります。
ちなみに、defaultがなくても今回は無限ループにはなりません。
メモ帳を開いて次の2つのプログラムを作ってみましょう。
【IfTest6.java】
import java.util.Calendar; public class IfTest6 { public static void main ( String argv[] ) { Calendar cal = Calendar.getInstance(); int hour = cal.get( Calendar.HOUR_OF_DAY ); if (hour > 5 && hour < 12 ) { System.out.println ("おはようございます。" ); } else if ( hour < 17 ) { System.out.println ( "こんにちは。" ); } else if (hour < 19 ) { System.out.println ( "こんばんは。" ); } else { System.out.println ("おやすみなさい。" ) ; } } }
【SwitchTest3.java】
import java.util.Calendar; public class SwitchTest3 { public static void main ( String argv[] ) { Calendar cal = Calendar.getInstance(); int hour = cal.get ( Calendar.HOUR_OF_DAY ) ; switch ( hour ) { case 6: case 7: case 8: case 9: case 10: case 11: System.out.println( "おはようございます。" ); break; case 12: case 13: case 14: case 15: case 16: System.out.println( "こんにちは。"); break; case 17: case 18: System.out.println ("こんばんは。"); break; default: System.out.println ("おやすみなさい。"); } } }
どちらのプログラムも同じ出力結果になります。
if文とswitch文を比べてみてください。
import java.util.Calendarでjavaのパッケージを使うことを宣言しています。
パッケージについては後に詳しく説明します。
Calendar cal = Calendar.getInstance();
int hour = cal.get( Calendar.HOUR_OF_DAY );
この文の意味は、int hour にその日の現在の時間を代入するという意味です。
出力結果です。
↓↓クリックして頂けると励みになります。