
本記事は、Javaを一から学んでいく際の学習メモとして書かれています。
主にインプレスから出版されている「スッキリわかるJava入門 第2版 (スッキリシリーズ)」の内容に沿ったかたちで学習していきます。
今回は、Javaの繰り返しについて学んでいきます。
プログラムの制御構造
プログラムは基本的に上から順番に処理されていきますが、場合によっては、処理を分岐させたり、ある部分を繰り返したりすることができます。
構造化定理(structure theorem)では、これらの順次、選択、反復の3つの制御構造で、どのようなプログラムでも作成可能だとされています。
繰り返しの構文
ある条件が満たされるまで、特定の処理を繰り返し行うようにするための構文として、以下のものがあります。
- while文
- do-while文
- for文
- 拡張for文
それでは、順番に確認をしていきます。
while文
while文では、ブロックに記述した処理を実行する前に条件式を評価します。
そして、条件式の評価がtrueであり続ける限り、そのブロック内の処理を繰り返します(ループします)。
int a = 0;
while (a < 10){
System.out.println(a);
a++;
}
なお、whileに続く条件式にtrueを指定した場合は無限ループとなり、ブロック内でbreak文を入れないとその処理から抜け出すことが出来なくなってしまいます。
do-while文
do-while文は、whileとは違い、ブロック内の処理を一度実行してから条件の評価をします。
そのため、ブロック内の処理は必ず1回は実行されることになります。
int a = 0;
do {
System.out.println(a);
a++;
} while (a < 10);
for文
for文では、繰り返す数を予め指定し、for (初期化処理; 繰返し条件; 繰返し時処理)のように記述します。
for (int i = 0; i < 10; i++){
System.out.println(i);
}
なお、for文で無限ループを表現するためにはfor (;;)のように記述します。
拡張for文
配列(後述)から要素を取り出す為に導入されたのが拡張for文と呼ばれるものでfor (要素の型 任意の変数名 : 配列の変数名)のように記述します。
int[] array = {1,2,3};
for (int v : array){
System.out.println(v);
}
しかし、配列から取り出した値が配列の何番目かはわからないので、そのような情報が必要な場合は、カウンタ変数を用いた通常のfor文を利用します。
最後に
今回はJavaの繰り返しについて、基本的なルールを学びました。
次回は配列について学んでいきます。
参考書籍