Java言語入門 〜C言語を学んだ君へ〜
[1] 分岐処理
引き続き制御文について学びます。
次は分岐処理のif文、switch文についてやりましょう。
[2] if文
まずは、if文を学びます。
if文の書式について説明します。
if文の書式
if (条件式1) {
処理A
} else if (条件式2) {
処理B
} else if (条件式3) {
.
.
.
.
.
} else {
処理C
}
C言語と違いはありませんね。
実際にJavaのプログラムを見てみましょう。
サンプルプログラム
public class Java05_03{
public static void main(String args[]){
for(int i = 0; i < 10; i++){
System.out.println("i = "+ i);
if (i >= 5) {
System.out.println("変数iは5以上の数です");
} else {
System.out.println("変数iは5未満の数です");
}
}
}
}
実行結果
for文でループさせて、iの値の状態で分岐をさせています。
前ページでのwhile文でも説明しましたが、"i >= 5"を満たしている(true)から2つ目の出力が実行されます。
[3] switch文
さて、2つ目の分岐処理はswitch文です。
switch文の書式
switch(式) {
case 定数式1:
処理
break;
case 定数式2:
処理
break;
・
・
・
default:
処理
}
では、実際にサンプルプログラムを見てみましょう。
サンプルプログラム
public class Java05_04{
public static void main(String args[]){
for(int i = 0; i < 5; i++){
switch (i) {
case 0:
System.out.println("iの値は0です");
break;
case 1:
System.out.println("iの値は1です");
break;
case 3:
System.out.println("iの値は3です");
break;
default:
System.out.println("iは値は0,1,3以外です");
}
}
}
}
実行結果
for文でループさせて、iの値の状態で処理を分岐させています。
特にプログラムの内容に関しては大丈夫でしょうか。
switch文の式には、byte、char、short、int型を使うことができます。
[4] break文とcontinue文
break文はループを抜けるときに使用します。
基本的な使い方はC言語と同じです。
サンプルソースを見てください。
サンプルプログラム break文
public class Java05_05{
public static void main(String args[]){
int i, sum = 0;
for(i = 0; i < 20; i++){
sum += i;
System.out.println("現在処理の回数 = " + i);
System.out.println("sum = " + sum);
if(sum > 20){
System.out.println("sumの値が20を超えたので終了");
break;
}
}
}
}
実行結果
for文だけならば、iの値が20になるまで処理を行うわけですが、
途中で sum > 20 と条件を指定しています。ここで、break文を使って、ループを抜け出しています。
ただし、この場合はひとつのループしか抜け出せないので、
複数のループ内を一気に抜け出したい場合には、以下のように記述します。
ラベル付きbreak文
LABEL:
for(int i = 0; i < 5; i++){
for(int j = 0; j <= 10; j++){
処理
break LABEL;
}
}
これで、その中で何重にもループをしていた場合、
break 名前; と記述することで、指定していたブロックまで抜けることができます。
上の例だとLABELのあるブロックまで抜けることができます。
次にcontinue文について説明します。
continueを使うと処理を行わずにスキップすることができます。
以下のサンプルを見てください。
サンプルプログラム continue文
public class Java05_06{
public static void main(String args[]){
int i;
for(i = 0; i < 5; i++){
if(i == 2)
continue;
System.out.println("現在処理の回数 = " + i);
}
}
}
実行結果
実行してみると分かりますが、iが2の時に以下の処理を行いません。
continue文はこのように使います。break文同様にcontinueにもラベルが使えます。
これで、制御文の学習が終わりました。
次は、実際に制御文を使った練習問題を解いて下さい。