小能豆

javascript) odd/ even/ null..../ NaN

javascript

问:编写一个程序,通过接收用户的数字来区分奇数和偶数

  • 取消输入时输出“取消输入” - 区分奇偶是否已输入值

我使用if else语句做到了,但是当我取消输入时无法输出输入cancel。我想取消输入,并在输入非数字的内容时让它知道。if 不能将 null 和 NaN 识别为 false 吗?那么如何使其易于识别呢?

<!doctype html>
<html lang="ko">
    <head>
        <meta charset="utf-8">
        <title>JAVASCRIPT</title>
    </head>
    <body>
    <script>
     let num = Number(prompt('put a number',15));
        let re;
        if(num == null){
            re = 'no'
        }
        if(num != Number){
            re ='please put a number'
        }
        if(num % 2 === 0){
            re = 'even';
        }else if(num % 2 === 1){
            re = 'odd';
        }
    </script>
    </body>
</html>

阅读 244

收藏
2024-02-24

共1个答案

小能豆

您的代码存在几个问题:

  1. 在检查输入是否为数字时,您使用了错误的条件。num != Number并不会检查输入是否为数字。正确的方法是使用isNaN(num)来检查输入是否为数字。
  2. 当用户取消输入时,prompt函数将返回 null,而不是 NaN。因此,您应该首先检查输入是否为 null,然后再检查输入是否为数字。
  3. 当用户取消输入时,您希望输出 “取消输入”,但是您的逻辑中并没有处理这种情况。

下面是一个修复了上述问题的代码:

<!doctype html>
<html lang="ko">
    <head>
        <meta charset="utf-8">
        <title>JAVASCRIPT</title>
    </head>
    <body>
    <script>
        let input = prompt('put a number');
        let num = parseFloat(input);
        let re;

        if (input === null) {
            re = '取消输入';
        } else if (isNaN(num)) {
            re = '请输入数字';
        } else {
            if (num % 2 === 0) {
                re = 'even';
            } else {
                re = 'odd';
            }
        }

        console.log(re);
    </script>
    </body>
</html>

修复后的代码首先检查输入是否为 null,然后检查输入是否为数字。如果输入为 null,则输出 “取消输入”;如果输入不是数字,则输出 “请输入数字”;如果输入是数字,则输出奇偶性。

2024-02-24