回答編集履歴
5
蛇足
answer
CHANGED
@@ -24,4 +24,10 @@
|
|
24
24
|
```
|
25
25
|
|
26
26
|
余談ですが,printlnメソッドはString型,boolean型,char型以外の引数を取った時
|
27
|
-
String.valueOfメソッドが内部で実行されるので,ロスかと言われるとやや疑問です.
|
27
|
+
String.valueOfメソッドが内部で実行されるので,ロスかと言われるとやや疑問です.
|
28
|
+
|
29
|
+
---
|
30
|
+
|
31
|
+
更に余談
|
32
|
+
数値→文字列変換は色々方法がありますが,その速さに関して面白い実験をした方がいました.
|
33
|
+
→[あえて言うほどではない 数値 ⇔ 文字列変換 Java編](http://www.techscore.com/blog/2012/11/28/%E6%95%B0%E5%80%A4-%E2%87%94-%E6%96%87%E5%AD%97%E5%88%97%E5%A4%89%E6%8F%9B-java%E7%B7%A8/)
|
4
余談
answer
CHANGED
@@ -21,4 +21,7 @@
|
|
21
21
|
}
|
22
22
|
|
23
23
|
}
|
24
|
-
```
|
24
|
+
```
|
25
|
+
|
26
|
+
余談ですが,printlnメソッドはString型,boolean型,char型以外の引数を取った時
|
27
|
+
String.valueOfメソッドが内部で実行されるので,ロスかと言われるとやや疑問です.
|
3
不適なコードを削除
answer
CHANGED
@@ -1,35 +1,3 @@
|
|
1
|
-
文字列変換した後,printlnしているからロスだと言われているような気がします.
|
2
|
-
数字だけ出力して,3か5の倍数の時だけ特定の文字を追加で出力するようにするといいのではないでしょうか.
|
3
|
-
```lang-java
|
4
|
-
public class Forked {
|
5
|
-
public static void main(String[] args) {
|
6
|
-
for (int i = 1; i <=50; i++){
|
7
|
-
//まず数字iを出力
|
8
|
-
System.out.print(i);
|
9
|
-
|
10
|
-
//3の倍数の時"!"を出力
|
11
|
-
if (i % 3 == 0){
|
12
|
-
System.out.print("!");
|
13
|
-
}
|
14
|
-
|
15
|
-
//5の倍数の時"?"を出力
|
16
|
-
if(i % 5 == 0){
|
17
|
-
System.out.print("?");
|
18
|
-
}
|
19
|
-
//改行
|
20
|
-
System.out.println();
|
21
|
-
//System.out.print(\n); こちらでも可
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
-
}
|
26
|
-
```
|
27
|
-
改行しないprintメソッドを使い,数字の後に特定の記号がついてもつかなくても
|
28
|
-
目的の処理ができるようにします.
|
29
|
-
|
30
|
-
---
|
31
|
-
|
32
|
-
追記
|
33
1
|
だとしたら,付ける記号を別に用意しておけばいいのではないでしょうか?
|
34
2
|
```lang-java
|
35
3
|
public class Forked {
|
2
別案
answer
CHANGED
@@ -25,4 +25,32 @@
|
|
25
25
|
}
|
26
26
|
```
|
27
27
|
改行しないprintメソッドを使い,数字の後に特定の記号がついてもつかなくても
|
28
|
-
目的の処理ができるようにします.
|
28
|
+
目的の処理ができるようにします.
|
29
|
+
|
30
|
+
---
|
31
|
+
|
32
|
+
追記
|
33
|
+
だとしたら,付ける記号を別に用意しておけばいいのではないでしょうか?
|
34
|
+
```lang-java
|
35
|
+
public class Forked {
|
36
|
+
public static void main(String[] args) {
|
37
|
+
for (int i = 1; i <=50; i++){
|
38
|
+
//記号を格納するString変数を用意
|
39
|
+
String signal = "";
|
40
|
+
|
41
|
+
//3の倍数の時signalに"!"を追加
|
42
|
+
if (i % 3 == 0){
|
43
|
+
signal += "!";
|
44
|
+
}
|
45
|
+
|
46
|
+
//5の倍数の時signalに"?"を追加
|
47
|
+
if(i % 5 == 0){
|
48
|
+
signal += "?";
|
49
|
+
}
|
50
|
+
//表示
|
51
|
+
System.out.println(i + signal);
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
}
|
56
|
+
```
|
1
コード
answer
CHANGED
@@ -1,3 +1,28 @@
|
|
1
1
|
文字列変換した後,printlnしているからロスだと言われているような気がします.
|
2
2
|
数字だけ出力して,3か5の倍数の時だけ特定の文字を追加で出力するようにするといいのではないでしょうか.
|
3
|
+
```lang-java
|
4
|
+
public class Forked {
|
5
|
+
public static void main(String[] args) {
|
6
|
+
for (int i = 1; i <=50; i++){
|
7
|
+
//まず数字iを出力
|
8
|
+
System.out.print(i);
|
9
|
+
|
10
|
+
//3の倍数の時"!"を出力
|
11
|
+
if (i % 3 == 0){
|
12
|
+
System.out.print("!");
|
13
|
+
}
|
14
|
+
|
15
|
+
//5の倍数の時"?"を出力
|
16
|
+
if(i % 5 == 0){
|
17
|
+
System.out.print("?");
|
18
|
+
}
|
19
|
+
//改行
|
3
|
-
|
20
|
+
System.out.println();
|
21
|
+
//System.out.print(\n); こちらでも可
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
}
|
26
|
+
```
|
27
|
+
改行しないprintメソッドを使い,数字の後に特定の記号がついてもつかなくても
|
28
|
+
目的の処理ができるようにします.
|