while文とは
while (条件式){ 処理 } |
- 条件式がtrueの間、処理を繰り返します。
- 条件式がfalseの場合、処理を終了します。
- 最初の判定がfalseの場合、処理は1回も実行されません。
- 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。
while文のサンプル
public class Test1 {
public static void main(String[] args) {
int i = 0;
while (i < 5) {
System.out.println(i); // 0,1,2,3,4が出力される
i++;
}
}
}
5行目は、値が5より小さい間、処理を繰り返します。
7行目は、条件式で使用する変数(i)の値を加算しています。
breakでループを抜ける(while文)
int i = 0;
while (true) {
if (i == 3) {
break;
}
System.out.println(i); // 0,1,2が出力される
i++;
}
3行目は、条件式をtrueにしています。このままの場合は無限ループになります。
5行目のbreakでwhile文を抜けます。
breakがないと無限ループになるので注意が必要です。
breakとラベルで2重ループを抜ける(while文)
int i = 0;
label: while (true) {
while (true) {
if (i == 3) {
break label;
}
System.out.println(i); // 0,1,2が出力される
i++;
}
}
System.out.println("END"); // END 出力される
whileが2つある2重ループです。labelはラベルです。
5行目のbreakとラベルで外側のwhile文を抜けます。
continueでループの先頭に戻る(while文)
int i = 0;
while (i < 5) {
if (i == 3) {
i++;
continue;
}
System.out.println(i); // 0,1,2,4が出力される
i++;
}
6行目のcontinueは、次は3行目を実行します。
このサンプルでは5行目の加算がないと無限ループになるので注意して下さい。
while文で配列を使用する
String[] color = {"red","yellow","blue"};
int i = 0;
while ( i < color.length) {
System.out.println(color[i]); // red,yellow,blueが出力される
i++;
}
1行目は、配列です。
4行目は、lengthで配列の要素数を取得しています。
do...while文とは
do { 処理 } while (条件式); |
- 条件式がtrueの間、処理を繰り返します。
- 条件式がfalseの場合、処理を終了します。
- 必ず1回は処理が実行されます。
- 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。
do...while文のサンプル
public class Test1 {
public static void main(String[] args) {
int i = 0;
do {
System.out.println(i); // 0,1,2,3,4が出力される
i++;
} while (i < 5);
}
}
値が5より小さい間、処理を繰り返します。
breakでループを抜ける(do...while文)
int i = 0;
do {
if (i == 3) {
break;
}
System.out.println(i); // 0,1,2が出力される
i++;
} while (true);
5行目のbreakは、do...while文を抜けます。
9行目は、条件をtrueにしています。このサンプルでは5行目のbreakがないと無限ループになるので注意して下さい。
breakとラベルで2重ループを抜ける(do...while文)
int i = 0;
label: do {
do {
if (i == 3) {
break label;
}
System.out.println(i); // 0,1,2が出力される
i++;
} while (true);
} while (true);
System.out.println("End"); // 出力される
doが2つある2重ループです。labelはラベルです。
5行目のbreakとラベルで外側のdo-while文を抜けます。
continueでループの先頭に戻る(do...while文)
int i = 0;
do {
if (i == 3) {
i++;
continue;
}
System.out.println(i); // 0,1,2,4が出力される
i++;
} while (i < 5);
6行目のcontinueは、次は3行目を実行します。
このサンプルでは5行目の加算がないと無限ループになるので注意して下さい。
無限ループの止め方(Eclipse使用時)
Eclipse使用時に無限ループになった時は、「コンソール」タブにある四角の赤いアイコンを押します。
関連の記事
Java 拡張for文のサンプル(配列やコレクションを取得)
Java for文 処理を繰り返す(break/continue)