for ステートメント

for (初期化;条件テスト;インクリメント) statement;

初期化はループ開始時に1回だけ評価されます。文字通り初期化のために使用され、通常はループ制御変数をここで初期化します。

条件テストはループの継続条件を書きます。(脱出条件ではないことに注意してください。)ループ開始時とその後ループの末尾またはcontinueステートメントが実行されてループするたびに評価されます。

※ 慣習では i < 11 と書き、i <= 10 のように書かない。(なぜだろう?要調査)

インクリメント部では文字通りループ制御変数をインクリメントまたはデクリメントします。ループの末尾またはcontinueステートメントが実行されてループするたびに評価されます。ループ開始時には評価されません。

for i=1 to 10
next
for (i=1;i<11;i++) {
}

初期化、条件テスト、インクリメントは必須ではありません。場合によってはすべてを省略することさえ可能です。ただしその場合はループ中で条件によりループを抜け出す処理が必要なことは言うまでもありません。


while ステートメント

条件が真の間ループし続ける機構を提供します。

ループ開始時に条件判定するか、ループ終了時に判定するかで二通りの書き方があります。

//ループ開始時判定
while (expr) {
    statement;
}
//ループ終了時判定
do {
    statement;
} while (expr);

なお、ループ脱出条件を書く、untilステートメントはJavaにはありません。

開始時判定と終了時判定のガイドライン

終了時判定を使用する場合は少なくとも1回実行されることが保証されます。一方、開始時判定を使用する場合はループを一度も実行されないことがあり得ます。もちろん少なくとも1回は実行されるように条件を記述することは可能ですが、その場合はdoループを使用したほうが論理的に見やすいものになるでしょう。ループを実行する回数によりどちらを選択するかを決めるのが良いでしょう。

break ステートメント

ループを脱出します。ループがネストしている場合は1段のみ脱出します。

※ 他言語ではラベルを使った一括脱出をサポートしているものもあるがJavaでは非サポート?(要調査)

continue ステートメント

ループブロック中の残りのステートメントをスキップしてループを続行します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です