Java入門:第5回 処理の制御(while文とfor文)
はじめに
今回は処理の繰返しであるwhile文とfor文について学びます。その前に、処理の流れを確認しましょう。
public class HelloWorld {
static public void main(String [] args) {
//処理
}
}
Javaではmainメソッドの中に記述した処理(命令:ステートメント)が上から順番に実行されていきます。これらの処理の流れを制御することをフロー制御と言います。フロー制御には繰り返し処理と条件分岐処理の2つがあります。繰り返し処理にはwhile文とfor文の2つがあります。まずwhile文から確認してきましょう。ちなみにwhileは「時間を経過させる」といった意味になります。
1. while文
while(条件) {
//処理
}
と記述すると()内に記述した「条件」が正しい間、処理を繰返します。例えば次のように記述すると
int x = 0;
while (x<20) {
System.out.println("x=" + x);
x = x + 3;
}
と記述すると、「xの値が20より小さい」ということが正しい間、処理を繰返します。
実行すると次のように表示されます。
x=0
x=3
x=6
x=9
x=12
x=15
x=18
【注意】
次のように記述するとうまく行きませんので注意が必要です。
int x = 0;
while(x < 20); {
System.out.println("x=" + x);
x = x + 3;
}
このコードはどこに誤りがあるでしょうか、実はこのコード次の次のような処理になっています。
int x = 0;
while(x < 20) //処理A;
{
System.out.println("x=" + x);
x = x + 3;
}
while(条件)の後に{}が無い場合は、直後の「処理A」が実行されます。;のみの記述であれば、何も実行しないので、xが0のままなので、処理Aがずっと実行される状況(無限ループ)になります。
2. for文
while文で繰り返し処理を記述した場合は、終了の条件はわかりやすいのですが、処理を何回繰り返したかはわかりにくいです。処理の回数を指定したい場合は、for文という繰返し処理を利用します。for文は次のように記述します。
int x = 0;
for (int i = 0; i < 5; i++) {
System.out.println(i + "回目の繰返し:x=" + x);
x = x + 3;
}
実行すると次のように表示されます。
0回目の繰返し:x=0
1回目の繰返し:x=3
2回目の繰返し:x=6
3回目の繰返し:x=9
4回目の繰返し:x=12
for文の()の中の意味は、for(初期値; 終了条件; 継続処理)となりますが、初めはfor(int i = 0; i < 繰返したい回数; i++)と記述し、繰り返す回数を意識するようにしてみましょう。
【補足1:代入演算子】
x = x + 3;
は現在のxに3を足して、xに再度代入するという意味です。次のように記述することも出来ます。
x += 3;
+=の他には、-=や*=、/=などあり代入演算子と呼ばれます。
【補足2:変数の適用範囲】
変数には利用できる範囲が存在します。この範囲のことを変数のスコープといいます。スコープを理解しないと、コンパイルエラーになるので注意しましょう。基本的に変数は定義した{}のブロック内で有効になります。
for (int i = 0; i < 5; i++) {
System.out.println(i + "回目の繰返し:x=" + x);
x = x + 3;
}
この場合、変数は、for文の{}内のみで有効なので次のように記述するとコンパイルエラーになります。
●有効範囲外で利用した場合
for (int i = 0; i < 5; i++) {
System.out.println(i + "回目の繰返し:x=" + x);
x = x + 3;
}
System.out.println(i);
変数iをfor文の外で利用したい場合は次のように記述します。
int i;
for (i = 0; i < 5; i++) {
System.out.println(i + "回目の繰返し:x=" + x);
x = x + 3;
}
System.out.println(i);
●有効範囲内で重複定義した場合
for (int i = 0; i < 5; i++) {
int i = 10;
System.out.println(i + "回目の繰返し:x=" + x);
x = x + 3;
}
Author And Source
この問題について(Java入門:第5回 処理の制御(while文とfor文)), 我々は、より多くの情報をここで見つけました https://qiita.com/YasushiIizuka/items/5699965cc5544508e31e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .