学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Javaプログラミング入門その8 caseを使った条件分岐

<<前  [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 にその日の現在の時間を代入するという意味です。


出力結果です。





<<前  [TOP]  次>>