はじめに
オラクル認定資格教科書 Javaプログラマ Silver SE8
第一章 Javaの基本
第二章 Javaのデータ型の操作
第三章 演算子と判定構造の使用
第四章 配列の作成と使用
第五章 ループ構造の使用← イマココ!!
第六章 メソッドとカプセル化の操作
第七章 継承の操作
第八章 例外の処理
第九章 Java APIの主要なクラスの操作
ループ処理について
javaでは以下のような4つのループ構文がある
・while文
・do-while文
・for文
・拡張for文
while文
while文は、条件式がtrueを戻す間、処理を繰り返す
while文の繰り返し条件として記述できる式は1つだけである
int a = 10;
int b = 0;
while(a < 5) { // aが10,9,8,7,6の時に実行される
System.out.println(b);
a--;
b++;
}
// 結果: 0 1 2 3 4
if文と同様に、「{}」を省略して書くことが可能(使わないけど・・・)
省略した場合は、条件式の次の一文のみ繰り返しの対象となる
int a = 0;
while(a++ < 5) // aが0,1,2,3,4の時に実行される
System.out.println("A");
System.out.println("B");
// 結果: A A A A A B(Aのみが繰り返し対象)
do-while文
do-while文は条件式の前に繰り返し処理をdoで記述する
そのため、条件の真偽に関わらず必ず一度は実行される
do {
// 繰り返し処理
} while (条件式); //最後はセミコロン「;」で終わる
----------------------------------------
中カッコ省略
do
//記述できる繰り返し処理は1つだけ (2つ以上書くコンパイルエラー)
while (条件式);
for文
for文は初期化文、条件文、更新文の3つからなる
記述する際はセミコロン「;」でそれぞれを区切る
また、条件式と更新文は省略ができるが、無限ループとなる可能性があるので要注意
for (初期化文; 条件文; 更新文) { // 実行の順番は【初期化文→条件化文→繰り返し処理→更新文...】
// 繰り返し処理
}
----------------------------------------
使用例
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
// 結果: 0 1 2
初期化文と更新文は複数記述できる
複数記述する際は、カンマ「,」で区切る。また、初期化文は同じ型でなければならない
for (int i = 0, j = 0; i < 3 && j < 3; i++, j++) {
System.out.println(i + j);
}
// 結果: 0 2 4
なお、for文内(中カッコ「{}」内)で宣言した変数は、for文のブロック内でのみ有効
拡張for文
構文
for (型 変数名 : 集合) {
// 繰り返し処理
}
-------------------------------------
使用例
int[] array = {1, 2, 3, 4, 5};
for (int a : array) {
System.out.println(a);
}
// 結果: 1 2 3 4 5
繰り返し処理の制御
breakを使った繰り返し処理の中断
int num = 0;
while (num < 4) {
if (num == 3) {
break; // numが3になったら繰り返しから抜ける
}
System.out.println(num);
num++;
}
// 結果: 0 1 2
多重ループでbreakした際は、直近のループのみ抜けて、外側のループは継続される
continueを使った繰り返し処理のスキップ
continueはループ処理から抜けるのではなく、continue以降の繰り返し処理をスキップして、次回のループが実行される
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue; // numが3の時だけ以下の処理が更新式までスキップされる
}
System.out.println(num);
}
// 結果: 0 1 2 4
ラベルを使ってbreakとcontinue時に制御を移す箇所を指定
以下の例では、通常、2重ループの内側のループでbreakした際には、内側のループからのみ抜けて。外側からは抜けないが、ラベルを利用することで外側まで抜けることができる
samle : //ラベルを一番外に置くことで、breakでここまで抜ける
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (3 < j) {
break sample;
}
System.out.println("j:" + j);
}
System.out.println(i);
}
// 結果: j:0 j:1 j:2
リンク集
【Javaの基本①】クラスの構造
【Javaの基本②】パッケージとインポート
【継承の操作②】インターフェース
【Javaのデータ型の操作①】プリミティブ型のデータ・参照型
【演算子と判定構造の使用①】論理演算子(&&、||)、同一性(==)、同値性(equals)
【演算子と判定構造の使用②】分岐処理(if、swich)
【配列の作成と使用】
【ループ構造の使用】while文、do-while文、for文、拡張for文
【メソッドとカプセル化の操作①】メソッドの概要
【メソッドとカプセル化の操作②】オーバーロード、コンストラクタ
【継承の操作①】クラスの継承
【例外の処理】
【Java APIの主要なクラスの操作】