teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

再々度追記しました。

2019/11/19 01:43

投稿

asako1010
asako1010

スコア50

title CHANGED
File without changes
body CHANGED
@@ -160,4 +160,81 @@
160
160
  </body>
161
161
  </html>
162
162
  コード
163
+ ```
164
+
165
+ 以下、3回目の書き直しです。
166
+ 「整数値である場合、処理実行」とするために「/^([1-9]\d*|0)$/」
167
+ を使用しました。
168
+ 参考にした記事https://webllica.com/javascript-number-check-function/
169
+
170
+ しかし、小数点でないときにも、アラート(エラーメッセージ)が出てしまう状況。
171
+
172
+
173
+
174
+ ```<!DOCTYPE html>
175
+ <html lang="ja">
176
+ <head>
177
+ <meta charset="utf-8">
178
+ <title>FizzBuzz問題</title>
179
+ </head>
180
+ <body>
181
+ <p>
182
+ FizzNum: <input type="text" id="fizzInput" value="" placeholder ="整数値を入力してください">
183
+ </p>
184
+ <p>
185
+ BuzzNum:<input type="text" id="buzzInput" value="" placeholder ="整数値を入力してください">
186
+ </p>
187
+ <button id="btn">実行</button>
188
+
189
+ <p>【出力】</p>
190
+ <p>整数値を入力してください</p>
191
+
192
+ <script>
193
+ 'use strict';
194
+ {
195
+ const fizzForm = document.getElementById ('fizzInput');
196
+ const buzzForm = document.getElementById ('buzzInput');
197
+ const btn = document.getElementById('btn');
198
+ btn.addEventListener('click', function() {
199
+
200
+ const fizzNum = parseFloat(fizzForm.value);
201
+ const buzzNum = parseFloat(buzzForm.value);
202
+
203
+ if (fizzNum === (/^([1-9]\d*|0)$/) && buzzNum === (/^([1-9]\d*|0)$/))
204
+ {
205
+
206
+ console.log(Number.isInteger(fizzNum));
207
+ console.log(Number.isInteger(buzzNum));
208
+
209
+ } else {
210
+ console.log(alert('エラーメッセージ「小数点はNG」'));
211
+ }
212
+
213
+ for (let number = 1; number <= 100; number++) {
214
+ if(number % fizzNum === 0 && number % buzzNum === 0) {
215
+ const p = document.createElement('p');
216
+ p.textContent = ("FizzBuzz" + " "+ number);
217
+ document.body.appendChild(p);
218
+
219
+ } else if(number % fizzNum === 0) {
220
+ const p = document.createElement('p');
221
+ p.textContent = ("Fizz" + " " + number);
222
+ document.body.appendChild(p);
223
+
224
+ } else if(number % buzzNum === 0) {
225
+ const p = document.createElement('p');
226
+ p.textContent = ("Buzz" + " " + number);
227
+ document.body.appendChild(p);
228
+ }
229
+ }
230
+
231
+
232
+ });
233
+ }
234
+
235
+
236
+ </script>
237
+ </body>
238
+ </html>
239
+ コード
163
240
  ```

1

書式の改善。

2019/11/19 01:43

投稿

asako1010
asako1010

スコア50

title CHANGED
File without changes
body CHANGED
@@ -80,4 +80,84 @@
80
80
  </body>
81
81
  </html>
82
82
  コード
83
+ ```
84
+
85
+ 【追記】
86
+ 最初のif とelseの使い方が間違っていたことが分かったので、コードを書き直しました。
87
+ 整数値を入れたときもエラーメッセージが出ます。
88
+ また、小数点を入れたときも計算されてしまいます。
89
+ 以下の箇所がおかしい気がしたので、調べたのですが手がかりは得られませんでした。
90
+
91
+ else {
92
+ console.log(alert('エラーメッセージ「小数点はNG」'));
93
+ }
94
+
95
+ 何を改善すべきなのでしょうか?
96
+
97
+ ```<!DOCTYPE html>
98
+ <html lang="ja">
99
+ <head>
100
+ <meta charset="utf-8">
101
+ <title>FizzBuzz問題</title>
102
+ </head>
103
+ <body>
104
+ <p>
105
+ FizzNum: <input type="text" id="fizzInput" value="" placeholder ="整数値を入力してください">
106
+ </p>
107
+ <p>
108
+ BuzzNum:<input type="text" id="buzzInput" value="" placeholder ="整数値を入力してください">
109
+ </p>
110
+ <button id="btn">実行</button>
111
+
112
+ <p>【出力】</p>
113
+ <p>整数値を入力してください</p>
114
+
115
+ <script>
116
+ 'use strict';
117
+ {
118
+ const fizzForm = document.getElementById ('fizzInput');
119
+ const buzzForm = document.getElementById ('buzzInput');
120
+ const btn = document.getElementById('btn');
121
+ btn.addEventListener('click', function() {
122
+
123
+ const fizzNum = parseFloat(fizzForm.value);
124
+ const buzzNum = parseFloat(buzzForm.value);
125
+
126
+ if (fizzNum === new Boolean(fizzNum) && buzzNum === new Boolean(buzzNum))
127
+ {
128
+
129
+ console.log(Number.isInteger(fizzNum));
130
+ console.log(Number.isInteger(buzzNum));
131
+
132
+ } else {
133
+ console.log(alert('エラーメッセージ「小数点はNG」'));
134
+ }
135
+
136
+ for (let number = 1; number <= 100; number++) {
137
+ if(number % fizzNum === 0 && number % buzzNum === 0) {
138
+ const p = document.createElement('p');
139
+ p.textContent = ("FizzBuzz" + " "+ number);
140
+ document.body.appendChild(p);
141
+
142
+ } else if(number % fizzNum === 0) {
143
+ const p = document.createElement('p');
144
+ p.textContent = ("Fizz" + " " + number);
145
+ document.body.appendChild(p);
146
+
147
+ } else if(number % buzzNum === 0) {
148
+ const p = document.createElement('p');
149
+ p.textContent = ("Buzz" + " " + number);
150
+ document.body.appendChild(p);
151
+ }
152
+ }
153
+
154
+
155
+ });
156
+ }
157
+
158
+
159
+ </script>
160
+ </body>
161
+ </html>
162
+ コード
83
163
  ```