※前回の講座がまだの人はこちらから
【Java入門④】条件分岐 ~初心者でも安心!基礎から学べるプログラミング講座~
繰り返し
プログラムを書く際に、同じ処理を何度も行いたい場合があります。
同じ処理を何度も書くことで実現できますが、同じコードが何行も続いてしまうのでオススメできません。
繰り返しという構文を使うことで、自動で同じ処理を繰り返すことができます。
繰り返しの構文
繰り返しの構文は複数存在するので、順番に紹介します。
while文
ある条件に一致する限り、処理を繰り返す文です。
while(条件) {
処理;
}
<使用例>
public class StatementWhile { public static void main(String[] args) { //変数iに0を代入 int i = 0; //iが4以下であれば繰り返す while(i <= 4) { //挨拶文を表示 System.out.println("こんにちは!"); //変数iをインクリメント i++; } } }
while文の条件が「i <= 4」になっています。
これは「iが4以下なら真(true)」という意味になります。
つまり、iが5以上にならない限り、while文内の処理を行うことになります。
<実行結果>
do-while文
一度処理を実行した後、ある条件に一致する限り、処理を繰り返す文です。
do {
処理;
} while(条件);
<使用例>
import java.util.Scanner; public class StatementDoWhile { public static void main(String[] args) { //キーボード入力を受け付ける Scanner numIn = new Scanner(System.in); //変数xを生成 int x; //必ず一度は実行 do { //ユーザに数字の入力を促す System.out.println("一桁の数字を入力してください"); //ユーザから入力された数字を変数xに代入 x = numIn.nextInt(); } while(x < (-9) || (x > 9)); //反転した数字を表示 System.out.println("あなたが入力した数字を符号反転した数字は" + (-1 * x) + "になります。"); } }
まず、do-while文内の処理を一度実行します。
その後、while内の条件を見て、「xが-9より小さい」「xが9より大きい」の条件を満たす場合、もう一度do-while文内の処理を実行します。
<実行結果>
for文
ある条件の範囲まで処理を繰り返す文です。
for(初期化式;条件式;変化式) {
処理;
}
<使用例>
public class StatementFor { public static void main(String[] args) { //変数sumを生成し、0を代入 int sum = 0; //変数iが10以下であれば繰り返す for (int i = 0; i <= 10; i++) { //変数sumにsumとiを足した値を代入 sum += i; } System.out.println("合計値は" + sum + "です。"); } }
初期化式でfor文内で使う変数を初期化します。
その後、条件(iが10以下)を見て、満たしていれば、for文内の処理を実行します。
実行後、変化式(iをインクリメント)を実行し、もう一度条件を見ます。
もし、条件を満たさなければ、そこでfor文の繰り返しは終了します。
今回は、変数iが0から1ずつ足されていき、iが11になった時点で繰り返しを終了します。
<実行結果>
繰り返しの注意点
繰り返し文で条件を満たし続けると、処理が一生終わらなくなります。
例えば、上記のwhile文で、while文内の「i++」を書かなかった場合、変数iは0から変わらなくなります。
すると、条件「i <= 4」を満たし続けるので、「こんにちは!」が永遠と表示されます。
(このことを無限ループと言ったりします。)
繰り返し文を実行する前に、必ず繰り返しを抜けるプログラムになっているか確認して下さい。
まとめ
繰り返しの構文は状況に応じて使い分けれる様になると良いです。
それぞれの繰り返しの意図を理解して、様々な場面で使ってみてください。