ループ(繰り返し)処理
繰り返し処理(ループ)は、同じコードブロックを何度も実行するプログラムの制御構造です。
特定の条件が満たされている間、あるいは指定された回数だけコードを繰り返し実行することができます。
これにより、同じ処理を手動で何度も行う代わりに、コンピュータにその処理を自動的に繰り返して実行させることができます。
繰り返し処理は、特に同じ処理を複数回繰り返す必要がある場合や、ある条件を満たすまで繰り返す必要がある場合に非常に便利です。
forループ
forループは、特定の回数だけコードを繰り返し実行するために使用されます。以下はforループの基本構文です。
for (初期化式; 条件式; 更新式) {
// 繰り返し実行したい処理
}
初期化式: ループの初めに1回だけ実行される式です。通常、カウンタ変数の初期化に使用します。
条件式: ループを継続するかどうかを判定する式です。この式がtrueの間、ループが続きます。
更新式: ループの各イテレーション(1回の繰り返し)の終わりに実行される式です。通常、カウンタ変数の更新に使用します。
例:1から10までの整数を順番に表示するプログラムをforループで実装してみましょう。
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
・public class Main {:これはJavaプログラムの始まりを示します。
Mainはクラスの名前で、Javaプログラムはクラスとして定義されます。
・public static void main(String[] args) {:これはJavaプログラムのメインメソッドを開始します。
プログラムの実行はこのメソッドから始まります。
for (int i = 1; i <= 10; i++) {:これは「i」が1から10まで1ずつ増加しながら以下の命令を実行する」というループを開始します。
つまり、iが1から10までの整数値を取ります。
・i++;:この命令は、iの値を1ずつ増やします。
これにより、次のループで2、3、4...といった順番の整数が表示されます。
・int i = 1;:ここでは、整数型の変数iを1で初期化しています。
この変数は後でループのカウンターとして使用されます。
System.out.println(i);:この命令は、コンソールにiの値を表示します。
ループが繰り返されるたびに、iの値が1から10まで順番に表示されます。
}:このカッコでforループが終了します。iが10を超えた場合、ループは終了します。
whileループ
whileループは、条件がtrueの間、繰り返し実行されます。
以下はwhileループの基本構文です。
while (条件式) {
// 繰り返し実行したい処理
}
条件式がtrueの間、ループが継続されます。
条件式が初めからfalseである場合、ループの中の処理は一度も実行されません。
例:1から10までの整数を順番に表示するプログラムをwhileループで実装してみましょう。
public class Main {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
}
}
・int i = 1;:ここでは、整数型の変数iを1で初期化しています。
この変数は後でループのカウンターとして使用されます。
・while (i <= 10) {:これは「iが10以下の間、以下の命令を実行する」というループを開始します。
つまり、iが10になるまで、次の命令が繰り返し実行されます。
・i++;:この命令は、iの値を1ずつ増やします。
これにより、次のループで2、3、4...といった順番の整数が表示されます。
・}:このカッコでwhileループが終了します。
iが10を超えた場合、ループは終了します。
do-whileループ
do-whileループは、whileループのバリエーションで、条件判定をループの最後に行うという違いがあります。
つまり、do-whileループは最低1回は必ず処理を実行します。
以下はdo-whileループの基本構文です。
do {
// 繰り返し実行したい処理
} while (条件式);
例:1から10までの整数を順番に表示するプログラムをdo-whileループで実装してみましょう。
public class Main {
public static void main(String[] args) {
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10);
}
}
・do {:これは「以下の命令を実行し、その後に条件をチェックする」という特別なループを開始します。
つまり、まずはループ内の命令を実行してから、条件を確認します。
・System.out.println(i);:この命令は、コンソールにiの値を表示します。
ループが繰り返されるたびに、iの値が表示されます。
・i++;:この命令は、iの値を1ずつ増やします。
これにより、次のループで2、3、4...といった順番の整数が表示されます。
・} while (i <= 10);:これはループの終了条件をチェックする部分です。iが10以下の場合、ループは続行されます。
doの後に来るのは条件のチェックです。
・}:ここでループが終了します。iが10を超えた場合、ループは終了します。
注意点
無限ループ: 条件式が常にtrueになるようなループを作成すると、無限ループに陥ってしまいます。
無限ループは避けるようにしましょう。
ループ変数の更新: ループ内で使用する変数を更新することを忘れないようにしましょう。
更新を行わないと、ループが永遠に続くか、条件を満たさない場合にループが一度も実行されないことがあります。
以上が、Javaの繰り返し処理に関する基本的な説明と例です。
繰り返し処理は、プログラミングの中でも重要な要素の一つであり、ほとんどのプログラムで活用される機能です。
問題
1. forループを使用して、1から10までの整数を順番に出力するプログラムを書いてください。
解答
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
2. whileループを使用して、20から1までの整数を逆順に出力するプログラムを書いてください。
解答
int num = 20;
while (num >= 1) {
System.out.println(num);
num--;
}
3. do-whileループを使用して、0から100までの整数を10ずつ増やしながら出力するプログラムを書いてください。
解答
int num = 0;
do {
System.out.println(num);
num += 10;
} while (num <= 100);
4. forループを使用して、1から100までの整数の合計を求めるプログラムを書いてください。
解答
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("合計:" + sum);
5. whileループを使用して、ユーザーが入力した数値までの整数を順番に出力するプログラムを書いてください。
以下は、ユーザーが入力した数値までの整数を順番に出力するプログラムのヒントのJavaコードです。ユーザーからの入力にはScannerクラスを使用します。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// ユーザーから数値の入力を受け取る
System.out.print("数値を入力してください:" );
int n = scanner.nextInt();
// 1からnまでの整数を順番に出力する
int i = 1;
while (i <= n) {
System.out.println(i);
i++;
}
scanner.close();
}
}
以下は、ユーザーが入力した数値までの整数を順番に出力するプログラムのヒントのJavaコードです。ユーザーからの入力にはScannerクラスを使用します。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// ユーザーから数値の入力を受け取る
System.out.print("数値を入力してください:" );
int n = scanner.nextInt();
// 1からnまでの整数を順番に出力する
int i = 1;
while (i <= n) {
System.out.println(i);
i++;
}
scanner.close();
}
}
解答
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("数値を入力してください:" );
int n = scanner.nextInt();
int i = 1;
while (i <= n) {
System.out.println(i);
i++;
}
scanner.close();
}
}
このプログラムでは、Scannerクラスを使用してユーザーからの入力を受け取ります。nextInt()メソッドを使って整数を取得し、それを変数nに格納します。
その後、whileループを使用してiがn以下の範囲で1ずつ増やしながら整数を順番に出力します。
このプログラムを実行すると、ユーザーが入力した数値までの整数が順番に表示されることを確認できます。
例えば、ユーザーが「5」と入力した場合は、1から5までの整数が順番に出力されます。