質問編集履歴

2

再々度追記しました。

2019/11/19 01:43

投稿

asako1010
asako1010

スコア50

test CHANGED
File without changes
test CHANGED
@@ -323,3 +323,157 @@
323
323
  コード
324
324
 
325
325
  ```
326
+
327
+
328
+
329
+ 以下、3回目の書き直しです。
330
+
331
+ 「整数値である場合、処理実行」とするために「/^([1-9]\d*|0)$/」
332
+
333
+ を使用しました。
334
+
335
+ 参考にした記事https://webllica.com/javascript-number-check-function/
336
+
337
+
338
+
339
+ しかし、小数点でないときにも、アラート(エラーメッセージ)が出てしまう状況。
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+ ```<!DOCTYPE html>
348
+
349
+ <html lang="ja">
350
+
351
+ <head>
352
+
353
+ <meta charset="utf-8">
354
+
355
+ <title>FizzBuzz問題</title>
356
+
357
+ </head>
358
+
359
+ <body>
360
+
361
+ <p>
362
+
363
+ FizzNum: <input type="text" id="fizzInput" value="" placeholder ="整数値を入力してください">
364
+
365
+ </p>
366
+
367
+ <p>
368
+
369
+ BuzzNum:<input type="text" id="buzzInput" value="" placeholder ="整数値を入力してください">
370
+
371
+ </p>
372
+
373
+ <button id="btn">実行</button>
374
+
375
+
376
+
377
+ <p>【出力】</p>
378
+
379
+ <p>整数値を入力してください</p>
380
+
381
+
382
+
383
+ <script>
384
+
385
+ 'use strict';
386
+
387
+ {
388
+
389
+ const fizzForm = document.getElementById ('fizzInput');
390
+
391
+ const buzzForm = document.getElementById ('buzzInput');
392
+
393
+ const btn = document.getElementById('btn');
394
+
395
+ btn.addEventListener('click', function() {
396
+
397
+
398
+
399
+ const fizzNum = parseFloat(fizzForm.value);
400
+
401
+ const buzzNum = parseFloat(buzzForm.value);
402
+
403
+
404
+
405
+ if (fizzNum === (/^([1-9]\d*|0)$/) && buzzNum === (/^([1-9]\d*|0)$/))
406
+
407
+ {
408
+
409
+
410
+
411
+ console.log(Number.isInteger(fizzNum));
412
+
413
+ console.log(Number.isInteger(buzzNum));
414
+
415
+
416
+
417
+ } else {
418
+
419
+ console.log(alert('エラーメッセージ「小数点はNG」'));
420
+
421
+ }
422
+
423
+
424
+
425
+ for (let number = 1; number <= 100; number++) {
426
+
427
+ if(number % fizzNum === 0 && number % buzzNum === 0) {
428
+
429
+ const p = document.createElement('p');
430
+
431
+ p.textContent = ("FizzBuzz" + " "+ number);
432
+
433
+ document.body.appendChild(p);
434
+
435
+
436
+
437
+ } else if(number % fizzNum === 0) {
438
+
439
+ const p = document.createElement('p');
440
+
441
+ p.textContent = ("Fizz" + " " + number);
442
+
443
+ document.body.appendChild(p);
444
+
445
+
446
+
447
+ } else if(number % buzzNum === 0) {
448
+
449
+ const p = document.createElement('p');
450
+
451
+ p.textContent = ("Buzz" + " " + number);
452
+
453
+ document.body.appendChild(p);
454
+
455
+ }
456
+
457
+ }
458
+
459
+
460
+
461
+
462
+
463
+ });
464
+
465
+ }
466
+
467
+
468
+
469
+
470
+
471
+ </script>
472
+
473
+ </body>
474
+
475
+ </html>
476
+
477
+ コード
478
+
479
+ ```

1

書式の改善。

2019/11/19 01:43

投稿

asako1010
asako1010

スコア50

test CHANGED
File without changes
test CHANGED
@@ -163,3 +163,163 @@
163
163
  コード
164
164
 
165
165
  ```
166
+
167
+
168
+
169
+ 【追記】
170
+
171
+ 最初のif とelseの使い方が間違っていたことが分かったので、コードを書き直しました。
172
+
173
+ 整数値を入れたときもエラーメッセージが出ます。
174
+
175
+ また、小数点を入れたときも計算されてしまいます。
176
+
177
+ 以下の箇所がおかしい気がしたので、調べたのですが手がかりは得られませんでした。
178
+
179
+
180
+
181
+ else {
182
+
183
+ console.log(alert('エラーメッセージ「小数点はNG」'));
184
+
185
+ }
186
+
187
+
188
+
189
+ 何を改善すべきなのでしょうか?
190
+
191
+
192
+
193
+ ```<!DOCTYPE html>
194
+
195
+ <html lang="ja">
196
+
197
+ <head>
198
+
199
+ <meta charset="utf-8">
200
+
201
+ <title>FizzBuzz問題</title>
202
+
203
+ </head>
204
+
205
+ <body>
206
+
207
+ <p>
208
+
209
+ FizzNum: <input type="text" id="fizzInput" value="" placeholder ="整数値を入力してください">
210
+
211
+ </p>
212
+
213
+ <p>
214
+
215
+ BuzzNum:<input type="text" id="buzzInput" value="" placeholder ="整数値を入力してください">
216
+
217
+ </p>
218
+
219
+ <button id="btn">実行</button>
220
+
221
+
222
+
223
+ <p>【出力】</p>
224
+
225
+ <p>整数値を入力してください</p>
226
+
227
+
228
+
229
+ <script>
230
+
231
+ 'use strict';
232
+
233
+ {
234
+
235
+ const fizzForm = document.getElementById ('fizzInput');
236
+
237
+ const buzzForm = document.getElementById ('buzzInput');
238
+
239
+ const btn = document.getElementById('btn');
240
+
241
+ btn.addEventListener('click', function() {
242
+
243
+
244
+
245
+ const fizzNum = parseFloat(fizzForm.value);
246
+
247
+ const buzzNum = parseFloat(buzzForm.value);
248
+
249
+
250
+
251
+ if (fizzNum === new Boolean(fizzNum) && buzzNum === new Boolean(buzzNum))
252
+
253
+ {
254
+
255
+
256
+
257
+ console.log(Number.isInteger(fizzNum));
258
+
259
+ console.log(Number.isInteger(buzzNum));
260
+
261
+
262
+
263
+ } else {
264
+
265
+ console.log(alert('エラーメッセージ「小数点はNG」'));
266
+
267
+ }
268
+
269
+
270
+
271
+ for (let number = 1; number <= 100; number++) {
272
+
273
+ if(number % fizzNum === 0 && number % buzzNum === 0) {
274
+
275
+ const p = document.createElement('p');
276
+
277
+ p.textContent = ("FizzBuzz" + " "+ number);
278
+
279
+ document.body.appendChild(p);
280
+
281
+
282
+
283
+ } else if(number % fizzNum === 0) {
284
+
285
+ const p = document.createElement('p');
286
+
287
+ p.textContent = ("Fizz" + " " + number);
288
+
289
+ document.body.appendChild(p);
290
+
291
+
292
+
293
+ } else if(number % buzzNum === 0) {
294
+
295
+ const p = document.createElement('p');
296
+
297
+ p.textContent = ("Buzz" + " " + number);
298
+
299
+ document.body.appendChild(p);
300
+
301
+ }
302
+
303
+ }
304
+
305
+
306
+
307
+
308
+
309
+ });
310
+
311
+ }
312
+
313
+
314
+
315
+
316
+
317
+ </script>
318
+
319
+ </body>
320
+
321
+ </html>
322
+
323
+ コード
324
+
325
+ ```