Close

素数を表示する For文の入れ子(Java)

2から100までの素数を表示してみたいと思います。
以下のサンプルのようにFor文を入れ子にしています。

//2から100までの素数を表示
public class ForNest {
	public static void main(String[] args) {
		for(int i=2; i<=100; i++){
			for(int j=2; (i%j!=0 && j<i)||j==i; j++){
				if(j==i){
					System.out.println(i + "は素数です。");
				}
			}
		}
	}
}

4行目のFor文はカウンタiを2~100の整数、
つまり1ずつ加算していきます。

5行目のカウンタjは2から開始しますが、
iより少ない値で割り切れるまたは、
iと同じ値になるまで1ずつ加算していきます。

そしてiがjと同じ値になった場合、
println命令で

「i は素数です。」 (※iには素数が入ります。)

と表示させます。

途中で割り切れる場合は5行目の終了条件を満たしますので、
6行目のif文を満たすことがなくprintln命令は実行されません。

実行後、結果が以下のように表示されます。

2は素数です。
3は素数です。
5は素数です。
7は素数です。
11は素数です。
13は素数です。
17は素数です。
19は素数です。
23は素数です。
29は素数です。
31は素数です。
37は素数です。
41は素数です。
43は素数です。
47は素数です。
53は素数です。
59は素数です。
61は素数です。
67は素数です。
71は素数です。
73は素数です。
79は素数です。
83は素数です。
89は素数です。
97は素数です。

 

Share on facebook
Share on twitter
Share on linkedin