回答編集履歴
3
加筆
test
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
別段、以下のように、**文字列の結合処理
|
71
|
+
別段、以下のように、**文字列の結合処理に着目した処理**も正答です。
|
72
72
|
|
73
73
|
```javascrit
|
74
74
|
|
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
if (i % 5 ===0) rslt += "Buzz"
|
82
82
|
|
83
|
-
if (rslt === "") rslt = i;
|
83
|
+
if (rslt === "") rslt += i; // その数字の代わりに表示. 数値でなく数字と示されている
|
84
84
|
|
85
85
|
console.log( rslt );
|
86
86
|
|
2
追記
test
CHANGED
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
問題には要件として示されていませんので、「書かないと駄目」ということはありませんが、
|
66
66
|
|
67
|
-
ベン図を見ても分かるように、**最も多くの条件を有した領域から消去法で if else を書く手法**に過ぎません。
|
67
|
+
ベン図を見ても分かるように、**最も多くの条件を有した領域から消去法で if else を書く手法**に過ぎません(重なっている部分を先に処理したほうが、あとで切り分けし直さなくて済むため)。
|
68
68
|
|
69
69
|
|
70
70
|
|
1
追記
test
CHANGED
@@ -1,3 +1,105 @@
|
|
1
|
+
追記)
|
2
|
+
|
3
|
+
FizzBuzz 問題は、様々な処理を訓練するものであり、「1つの回答例だけが正解」というものではありません。
|
4
|
+
|
5
|
+
ただ、問題文から「[ベン図](https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%B3%E5%9B%B3)を想像できる」だけの知識があることが望ましい題材です。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
1. 1から100 の数 という矩形のグループ ... **反復処理**(for, while)のブロックで表現
|
10
|
+
|
11
|
+
2. 3で割り切れる という円(Fizz)のグループ ... if 文などで切り分ける
|
12
|
+
|
13
|
+
3. 5で割り切れる という円(Buzz)のグループ ... 同上
|
14
|
+
|
15
|
+
4. 2.3. の重なったグループ ... 同上
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
ご質問(疑問2)で示されるコードは正しく切り分けができていませんので、[if文](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/if...else)を再確認する必要があります。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
* ``if(条件a) { 処理A }`` .. モシ、「条件aが真」ナラ、「処理A」ヲジッコウ
|
24
|
+
|
25
|
+
* ``else if(条件b) { 処理B }`` .. ソウジャナク、「条件bが真」ナラ、「処理B」ヲジッコウ
|
26
|
+
|
27
|
+
* ``else { 処理C }`` .. ソウジャナイナラ、「処理C」ヲジッコウ(条件aも条件bも共に偽のとき)
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
```javascrit
|
32
|
+
|
33
|
+
for(var i = 1; i <= 100; i++ ){
|
34
|
+
|
35
|
+
//console.log(i); ... 割り切れるかどうかに関わらず、出力してしまっている
|
36
|
+
|
37
|
+
if(i % 3 ===0 && i % 5===0){
|
38
|
+
|
39
|
+
console.log("FizzBuzz");
|
40
|
+
|
41
|
+
} else if (i % 5 ===0){
|
42
|
+
|
43
|
+
console.log("Buzz");
|
44
|
+
|
45
|
+
} else if (i % 3 ===0) {
|
46
|
+
|
47
|
+
console.log("Fizz");
|
48
|
+
|
49
|
+
} else {
|
50
|
+
|
51
|
+
console.log( i )
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
```
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
> 3の倍数「且つ」5の倍数の "&&" は、if文の中で先頭に書かないとダメなのでしょうか?
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
問題には要件として示されていませんので、「書かないと駄目」ということはありませんが、
|
66
|
+
|
67
|
+
ベン図を見ても分かるように、**最も多くの条件を有した領域から消去法で if else を書く手法**に過ぎません。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
別段、以下のように、**文字列の結合処理 or 数値取得に着目した処理**も正答です。
|
72
|
+
|
73
|
+
```javascrit
|
74
|
+
|
75
|
+
for(var i = 1; i <= 100; i++ ){
|
76
|
+
|
77
|
+
var rslt = "";
|
78
|
+
|
79
|
+
if (i % 3 ===0) rslt = "Fizz";
|
80
|
+
|
81
|
+
if (i % 5 ===0) rslt += "Buzz"
|
82
|
+
|
83
|
+
if (rslt === "") rslt = i;
|
84
|
+
|
85
|
+
console.log( rslt );
|
86
|
+
|
87
|
+
}
|
88
|
+
|
89
|
+
```
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
※柔軟な考え方で様々な処理法がある問題ですので、「他人のコードを読む」、「他人にコードを読ませる」といった訓練に使われます。
|
94
|
+
|
95
|
+
(追記ここまで
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
----
|
100
|
+
|
101
|
+
|
102
|
+
|
1
103
|
A. 1
|
2
104
|
|
3
105
|
|