Java 繰り返し処理
for
指定した回数を繰り返すときに使用する構文。
code:for.java
for (int i = 1; i <= 10; i++) { // for (初期式; 条件; 変化) { /* 処理 */ } System.out.println(i + "回目");
}
初期式は繰り返しに入るときに行う式。この場合はiを初期化している。ただし、初期式で変数を初期化した場合は繰り返し処理内でのみ使用できる(繰り返し処理前に変数を初期化した場合は、繰り返し処理後でも使用できる)。
条件は繰り返しをするための条件式。真であれば処理を行い、偽であれば繰り返しの処理を終了する。
変化は繰り返し処理を行った際に行う式。基本的に初期式で宣言した値をインクリメントするのが多い。
この3つはいずれも必須ではない。ただし、区切りとしてセミコロンはつけること。
拡張for
配列の変数を使って繰り返し処理を行いたい場合はこの拡張forを使うのが良い。
code:array-for.java
String day_week[] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
for (String dw: day_week) { // for (<型> <変数名>: <コレクション>) { /* 処理 */ }
System.out.println(dw);
}
型はコレクションと同じ型を使う。
変数名は繰り返し処理内で使用する任意の変数名を指定する。
コレクションは繰り返し処理外にある配列変数を指定する。
while
条件式だけ書き、その条件式が真である場合にのみ処理が行われる構文。forで条件式だけを書くなら、whileが一番良いかもしれない。無限ループするなら条件式にtrueを入れるだけ(書くなら、抜けるための構文も書こう)。
code:while.java
int i = 1;
while (i <= 10) {
System.out.println("while:" + i);
i++;
}
ただし、この繰り返しでは配列のインデックスを取り出すことができないので、通常のforを使う必要がある(<変数名>.lengthを使うと良い)。
do ~ while
先に処理を行って、あとから条件でまた繰り返すのか繰り返さないのかを決める構文。
code:do-while.java
int a = 123456;
System.out.println(a);
do {
a = a / 2;
System.out.println(a);
} while (a > 1);