回答編集履歴
2
追記
answer
CHANGED
|
@@ -26,4 +26,10 @@
|
|
|
26
26
|
安直ですが、何ともレガシーで残念な感じになります。
|
|
27
27
|
0. **メソッドを早期に脱出する方法**
|
|
28
28
|
合成数であることが分かった時点で、returnする方法です。
|
|
29
|
-
素数判定自体を別のメソッドに切り出せば、さらに見通しの良いコードになります。
|
|
29
|
+
素数判定自体を別のメソッドに切り出せば、さらに見通しの良いコードになります。
|
|
30
|
+
|
|
31
|
+
コードの書き方について
|
|
32
|
+
---
|
|
33
|
+
teratailには、コードを見やすく表示する機能があります。
|
|
34
|
+
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
|
|
35
|
+

|
1
追記
answer
CHANGED
|
@@ -3,4 +3,27 @@
|
|
|
3
3
|
$ javac -encoding utf-8 keisan.java
|
|
4
4
|
|
|
5
5
|
$ java keisan 10
|
|
6
|
-
```
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
コメントを受けて
|
|
9
|
+
---
|
|
10
|
+
> ソースコードが間違っているようで、1は素数です。と表示されてしまいます。
|
|
11
|
+
|
|
12
|
+
インデントを揃えて良く観察すれば理由は自然と分かります。
|
|
13
|
+
> ```Java
|
|
14
|
+
for (i = 2; i <= n - 1; i++){
|
|
15
|
+
if (n % i == 0) {
|
|
16
|
+
System.out.println(n + " は素数ではありません。");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
System.out.println(n + " は素数です。");
|
|
20
|
+
> ```
|
|
21
|
+
|
|
22
|
+
これだとfor文内部の処理に全く関係なく、最終行が実行されます。
|
|
23
|
+
修正の方針は主に二つです。
|
|
24
|
+
0. **フラグを使う方法**
|
|
25
|
+
合成数であることが分かった時にフラグを立てる方法です。
|
|
26
|
+
安直ですが、何ともレガシーで残念な感じになります。
|
|
27
|
+
0. **メソッドを早期に脱出する方法**
|
|
28
|
+
合成数であることが分かった時点で、returnする方法です。
|
|
29
|
+
素数判定自体を別のメソッドに切り出せば、さらに見通しの良いコードになります。
|