前回は「if文」やら「switch文」といった条件分岐をやりました。
今回は「繰り返し」についてやっていこうと思います。
前回↓
[st-card-ex url="https://www.dice-programming-etc.com/%e6%96%b0%e7%b1%b3%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9e%e3%83%bc%e3%81%ab%e3%82%88%e3%82%8bjava%e5%85%a5%e9%96%80-%e3%81%9d%e3%81%ae%ef%bc%94/" target="_blank" rel="nofollow" label="" name="" bgcolor="" color="" readmore=""]
while文
まずは「while文」になります。while文を使用するときは前回の条件分岐を併用することが多くなってきます。(ほぼ使います。)
ただ、例外として無限ループを意図的に発生させたい場合は別となります。
書き方はこんな感じ。
処理;
}
これだけ見て「あー、OK。完全に理解した。」という人は次へ行ってもOKです。
いくつかwhile文を用いたループの例を見ていきましょう。
//よく使われるwhile文
int i = 5;
while(i < 10){
System.out.println(i);
i++;
}
//これもよく使うと思う
int i = 5;
while(true){
System.out.println(i);
i++;
if(i < 10){
break;
}
}
//あまり使わないかな......
while(true){
System.out.println("無限ループ");
}
こんな感じですね。プログラム中の「i++」や「<」については次の記事で解説します。
何が重要かというと「while(条件式)」の条件式はループをするための条件であるということです。
無限ループは条件式が「true」でループ内にループを抜けるための条件がないと思います。
つまり、無限ループは常にループをする条件が一致している状態を作り出すことです。
あまり使いませんが起動したらプログラムを強制的に停止させない限り動き続ける処理を作るときに用います。
for文
繰り返し処理はwhile文の他に「for文」があります。
どんな感じになるかは見てもらった方が早いですね。
for (初期化式; 条件式; 変化式){
実行する文1;
実行する文2;
...
}
こんな感じですね。ちなみに実行する文が一つだけの場合は「{」と{}」を省略して......
for (初期化式; 条件式; 変化式)
実行する文;
とすることもできます。そして、for文でも無限ループは可能です。
実行する文;
}
まぁ、あまり使いませんけどね。
とりあえず、for文を用いた繰り返し処理を見てみましょう。
for(int i = 0; i <= 10; i++){
System.out.println(i);
}
出力内容は......
0
1
2
3
4
5
6
7
8
9
10
となります。ちなみに今のfor文は
for(int i = 0; i <= 10;){
System.out.println(i);
i++;
}
int i = 0;
for(;i <= 10;){
System.out.println(i);
i++;
}
こんな感じにもできます。
人によるかもしれませんがwhile文よりfor文の方が使う機会が多いように感じます。
for文はwhile文に変数の初期化と変数の更新処理が追加されたものという認識でも良いんじゃないかなー、と思います。(まぁ、使いやすいほうを使ってください。)
繰り返し処理の注意点
条件式のミス
これは、結構プログラミングやり始めにありがちなことなんですよー。
というのも、自分は正しい条件式を書いたつもりでも「<」や「>」が逆だったりと凡ミスで無限ループに陥る場合があります。
意図せず無限ループにはまってしまった場合は、焦らずプログラムを強制的に停止してください。コンソール上では「Ctrl+C」で無限ループを抜けられます。
変数の更新し忘れ
条件式がいかに正しかろうと、条件で判断材料とする変数が更新されていなければ無限ループに陥ります。なので、「実行前に条件式は正しいか」「変数は更新しているか」を確認してから実行する癖をつけられると良いですね。
注意点は以上です。これを気を付けていればそうそう無限ループにはまることはないと思います。
次回の記事では「i++」や「>」などについて説明しようと思います。
お楽しみに!