条件分岐
プロジェクトの準備
Eclipseで新規にプロジェクトを作成しましょう. メニューから[ファイル]-[新規]-[Javaプロジェクト]をクリックして,「新規Javaプロジェクトの作成」を開きます. ここでは,プロジェクト名に”Project3”を入力して,[完了]をクリックしましょう. パッケージ・エクスプローラに作成したプロジェクトが表示されていることを確認してください.
続いてソースファイルを作成しましょう. メニューから[ファイル]-[新規]-[クラス]をクリックして,「新規Javaクラス」を開きます. ここでは,名前に”MyClass”を入力し,public static void main(String[] args)(V)にチェックを入れ,[完了]をクリックしましょう. パッケージ・エクスプローラに作成したソースファイルが表示されていることを確認してください.
制御構文とは
制御構文とは実行する命令文の順序を変化させるための構文です. 一般的に命令文はソースコードの「上から順に1つずつ」実行されるのが基本です. この「上から順に1つずつ」実行する制御を順次と呼びます. この他,条件によって異なる命令文を実行する制御を条件分岐, 条件を満たすまで同じ命令文を繰り返す制御を繰り返しと呼びます. 今回はこの条件分岐に関して学習します. 条件分岐を理解するには,条件を表現するための条件式を学ぶ必要があります. 次章では,まず条件式に関して確認していきましょう.
条件式とは
条件式とは,主に比較演算子や論理演算子を用いて表現され,
真(true)または偽(false)のどちらかの値を返す論理式のことです.
この真(true)や偽(false)という値はboolean型となることに注意してください.
例えば,int型の変数xに代入されている値が数値3と一致するかどうかを条件式で表現するには,x == 3
と表します.
ここで,「==」は左辺と右辺が等しいかを判定する比較演算子です.
条件式で用いられる比較演算子を下記にまとめます.
比較演算子 | 意味 | 例 |
---|---|---|
A==B | AとBは等しい | x==3 |
A!=B | AとBは等しくない | x!=3 |
A>B | AはBより大きい | x>3 |
A>=B | AはBと等しいか大きい | x>=3 |
A<B | AはBより小さい | x<3 |
A<=B | AはBと等しいか小さい | A<=3 |
下記のコードを参考にint型の変数xを宣言して3を代入し, 上記の比較演算子の結果を確認してみましょう. プログラムの実行後に,コンソールの出力結果を確認してください.
複雑な条件式を表現する場合は論理演算子を利用します.
例えば,「int型の変数xの値が3と一致する,かつ,int型の変数yの値が5と一致する」を条件式で表現するには,
x==3 && y == 5
と表します.
ここで,「&&」は左辺と右辺の条件式を両方満たす場合に真(true)となる論理演算子です.
条件式で用いられる論理演算子を下記にまとめます.
論理演算子 | 意味 | 例 |
---|---|---|
A&&B | かつ(両方の条件を満たす場合に真) | (x=3)&&(y=5) |
A||B | または(どちらかの条件さえ満たせば真) | (x=3)||(y=5) |
下記のコードを参考にint型の変数yを宣言して4を代入し, 上記の論理演算子の結果を確認してみましょう. プログラムの実行後に,コンソールの出力結果を確認してください.
if文
条件式の結果に応じて実行する処理を分けることを条件分岐と呼びます. 条件分岐を表現するにはif文を利用します. if文は下記のように記述し,「()」内で指定されている条件式が真(true)となるときに,「{}」内の命令文を実行します.
if(条件式){
実行する命令
}
下記のコードを参考に変数xが正の整数のときに”正の値”と出力させてみましょう. プログラムの実行後に,コンソールの出力結果を確認してください. 変数xに-3を代入すると結果はどう変わるかも確認してください.
下記のようにelseを用いることで, 条件式が偽(false)となるときの命令も記述することができます.
if(条件式){
真のときに実行する命令
}
else{
偽のときに実行する命令
}
下記のコードを参考に条件式が偽となるときに"0または負の値"と出力させてみましょう. プログラムの実行後に,コンソールの出力結果を確認してください.
さらにelse ifを用いることで複数の条件式による分岐が可能になります.
if(条件式1){
条件式1が真のときに実行する命令
}
else if(条件式2){
条件式2が真のときに実行する命令
}
else{
条件式1,2がいずれも偽のときに実行する命令
}
下記のコードを参考に正の値,負の値,ゼロ の条件分岐を実装しましょう. プログラムの実行後に,コンソールの出力結果を確認してください.
switch文
if文は基本的に二者択一の条件分岐であるのに対し,多肢選択の条件分岐を表現する方法としてswitch文があります. switch文は条件値(主に変数を用いる)に応じて,複数の分岐を表現することができます. switch文は下記のように記述し,「()」内で指定されている条件値が,caseで指定されている値に一致する場合,対応する命令を実行します. いずれのcaseにも該当しない場合にはdefaultの命令が実行されます. caseは必要な数だけ記述することが可能で,defaultを省略することも可能です.
swtich(条件値){
case 値1:
命令1;
break;
case 値2:
命令2;
break;
case 値3:
命令3;
break;
default:
デフォルトの命令;
}
下記のコードを参考に,変数fruitに代入された日本語表記の果物の名前を, 英語表記に変換して出力させてみましょう. プログラムの実行後に,コンソールの出力結果を確認してください.
課題
新たにint型の変数zを宣言し,if文を利用して変数zが偶数か奇数かを判定してください. コンソールには変数zの値と,判定の結果を出力させてください. 課題が完成したら,作成したプロジェクトを実行可能JARファイルの形式でファイルに保存(エクスポート)してください.