oracleJavaSilverの勉強日記(ループ構造の使用)
while文
条件式がtrueを戻す間、処理を繰り返すための構文。条件式は、必ず真偽値を戻さなければいけない。
構文
while(条件式){繰り返しの中で実行される処理}
do-while文
While文と意味は同じだが、条件に合致するかどうかにかかわらず、1回は処理を実行したい場合に使う。
構文
do{
//繰り返し処理
} while(条件式);
中かっこ省略
while文やdo-while文もif文などと同じように中かっこ「{}」を省略することができる。中かっこを省略した場合、1つの文だけが繰り返し処理として実行される。
do-while文で中かっこを省略した場合は、doの後ろには1つの文しか記述することはできない。もし、中かっこを省略したのに文を複数記述するとコンパイルエラーになる。
for文
構文
for(初期化文; 条件文; 更新文){繰り返し処理}
初期化文は、繰り返し処理内で使用する一時変数の宣言とその初期化を行う。
同時に複数の変数をカンマ「,」を使って宣言、初期化できる。複数の変数を宣言する場合は、変数が同じ型でなければいけない。
初期化文で宣言した一時変数はfor文のブロック内(中かっこの範囲)でしか使えない。
もし、for文の外で使った場合は、コンパイルエラーになる。
条件文は、繰り返し処理を実行するかfor文を抜けるかを判定し、真偽値を戻す式。
trueを戻すと繰り返し処理が実行され、falseを戻すとfor文を抜ける。
条件文を複数記述する場合は論理演算子を使う。
更新文は、繰り返し処理が終わってから一時変数の値を変更する式。
更新文を複数記述したい場合はカンマ「,」を使う。
二重ループ
外側のループが回る間に、内側のループが回る。たとえば、内側のループが3回まわるという条件を持っていた場合、外側のループ1回に付き、内側のループが3回まわる。そのため、外側のループが3回という条件だった場合は、外側3回×内側3回の合計9回まわることになる。例えば、次のコードだと、「hello」が合計9回表示される。
例
for(int i=0; i<3; i++){
for(int j=0; i<3; j++){
System.out.println("hello");
}
}
拡張for文
集合から1つずつ要素を取り出し、それを変数に代入してから繰り返し処理を実行する。拡張for文で扱える集合は、java.util.ArryaListなどがある。
構文
for (型 変数名 : 集合){繰り返し処理}
拡張for文では、変数の参照をコピーしているので、変数の参照を変更しても、集合には影響しない。
無限ループ
ループ文で条件式を省略したりなどによってずっと同じループが繰り返されること。
break
繰り返し処理を中断するには、breakを使う。二重ループの中で使われるbreakによって中断されるのは、直近にあるループのみ。
continue
繰り返し処理をスキップする。以降の処理をスキップしてループの条件判定に戻る。
ラベル
breakやcontinueの時に制御を移す箇所を自由に指定できる。
ラベルはあらゆる箇所に付けることができる。