前提・実現したいこと
if文を使い、入力された値に小数点が含まれていた場合に 「整数値を入力してください」 のエラーメッセージが表示されるようにしたい。
該当のソースコード
※動作が上手くいかない箇所はJavaScriptファイルの最後のelse ifの部分です。
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <link rel="stylesheet" href="style.css"> 8 <title>FizzBuzz</title> 9</head> 10 11<body> 12 <h1>FizzBuzz問題</h1> 13 FizzNum:<input type="text" id="fizzNum" placeholder="整数値を入力してください" value=""> 14 <br> 15 BuzzNum:<input type="text" id="buzzNum" placeholder="整数値を入力してください" value=""> 16 <br> 17 <button type="button" id="output">実行</button> 18 <h3>【出力】</h3> 19 20 <ul id="fizzbuzzList"></ul> 21 22 <script src="main.js"></script> 23</body> 24 25</html>
JavaScript
1const button = document.getElementById("output"); 2const fizzbuzzList = document.getElementById("fizzbuzzList"); 3 4const listAdd = (a) => { 5 const li = document.createElement("li"); 6 li.innerHTML = a; 7 fizzbuzzList.appendChild(li); 8}; 9 10button.addEventListener("click", () => { 11 const fizzNum = document.getElementById("fizzNum").value; 12 const buzzNum = document.getElementById("buzzNum").value; 13 14 if (fizzNum > 0 && buzzNum > 0) { 15 for (i = 1; i < 100; i++) { 16 if (i % fizzNum === 0 && i % buzzNum === 0) { 17 listAdd("FizzBuzz" + i); 18 } else if (i % fizzNum === 0) { 19 listAdd("Fizz" + i); 20 } else if (i % buzzNum === 0) { 21 listAdd("Buzz" + i); 22 } 23 } 24 } else if (fizzNum == "" || buzzNum == "") { 25 listAdd("整数値を入力してください"); 26 } else if (typeof fizzNum === "string" || typeof buzzNum === "string") { 27 listAdd("整数値を入力してください"); 28 } else if (fizzNum < 0 || buzzNum < 0) { 29 listAdd("整数値を入力してください"); 30 } 31});
試したこと
JavaScript
1else if (fizzNum < 0 || buzzNum < 0) { 2 listAdd("整数値を入力してください"); 3 }
この部分を
JavaScript
1else if (indexOf.fizzNum(".") !== -1 || indexOf.buzzNum(".") !== -1) { 2 listAdd("整数値を入力してください"); 3 }
JavaScript
1else if (fizzNum.includes(".") !== -1 || buzzNum.includes(".") !== -1) { 2 listAdd("整数値を入力してください"); 3 }
こちらに変更して試してみたのですが上手く作動されず表示されませんでした。
お手上げ状態になってしまったのでご教授いただけると助かります。
###追記
回答いただいたものを参考に書き換えてみました。
JavaSceipt
1else if (Number.isInteger(fizzNum) == false || Number.isInteger(buzzNum) == false) { 2listAdd("整数値を入力してください"); 3}
このようにしてみましたが何も表示されませんでした。
回答1件
あなたの回答
tips
プレビュー