如何在 JavaScript 中判断一个数字是奇数还是偶数?

front end technologyjavascriptweb development

在本教程中,让我们看看如何使用 JavaScript 判断一个数字是奇数还是偶数。第一步是理解逻辑。什么是偶数?偶数可以被 2 整除。余数为零。什么是奇数?奇数除以 2 时会有余数。

使用 if-else 条件和模运算符

"if" 将检查条件,如果条件为真,则执行 if 块代码。如果条件为假,则执行 else 块代码。

JavaScript 中的模数运算符返回余数。

语法

用户可以按照以下语法使用 if else 语句和模数运算符。

if(number % 2==0){
    
    //数字为偶数
}
else {

    //数字为奇数
}

算法

  • 步骤 1 - 将数字读入变量 n。

  • 步骤 2 - 将 n 除以 2,并将余数保存在名为 r 的变量中。

  • 步骤 3 -

    如果r==0,打印"偶数"
    如果 r!=0,打印"奇数"
    

示例

在此示例中,我们将 156 分配给一个变量。接下来,我们应用上面给出的语法。在这里,if 块检查余数,这里余数为 0。因此,if 块被执行,我们得到输出"156 是偶数"。

<html> <body> <h2><i>if else</i> and <i>modulus operator</i> to find odd or even</h2> <div id="number"></div> <script> let numoutput=document.getElementById("number"); var nmbr = 156; if(nmbr % 2 == 0) numoutput.innerHTML = nmbr + " is Even"; else numoutput.innerHTML = nmbr + " is Odd"; </script> </body> </html>

使用三元运算符和模运算符

三元运算符是具有三个操作数的运算符。条件、条件为真时的值以及条件为假时的另一个值是表达式的三个操作数。

如果条件为 true,则执行"?"和":"之间的值。同样,如果条件返回 false,则执行":"后面的值。

语法

用户可以按照以下语法使用三元运算符。

var result = condition? "true block": "false block";

示例

在此示例中,将 131 赋值给一个变量。接下来,我们使用上述语法检查其余数。此处余数为 1。因此,三元运算的 false 块被执行。因此,我们得到输出"number is odd"。

<html> <body> <h2>Using <i>Ternary Operator</i> and <i>modulus operator</i></h2> <div id="number"></div> <script> let output=document.getElementById("number"); var nbr = 131; (nbr % 2 == 0) ?output.innerHTML = nbr +" is even" : output.innerHTML= nbr+ " number is odd"; </script> </body> </html>

使用按位异或运算符

当一个数字按位异或 1 时,如果该数字是偶数,则该数字增加 1,如果该数字是奇数,则该数字减少 1。

考虑 11 异或 1
1011
0001
-----
1010 是 10,并且是减数;因此 11 是奇数。

用户可以按照以下语法使用按位异或运算符。

语法

if ((n ^ 1) == (n + 1))//按位异或逻辑
//even
else
//odd

示例

在此示例中,我们取数字 100。使用三元运算,我们将其传递给奇偶校验函数,在该函数中检查按位异或逻辑并返回布尔值。如果为真,则显示该数字为"偶数",否则该数字为"奇数"。

<html> <body> <h2>Using <i>bitwise xor operator</i></h2> <div id="number"></div> <script> function isOddEven(n) { if ((n ^ 1) == (n + 1))//even return true; else //odd return false; } let output=document.getElementById("number"); var num = 100; isOddEven(num) ? output.innerHTML = num + " Even" : output.innerHTML = num + " Odd" ; </script> </body> </html>

使用按位与运算符

当一个数字与 1 进行与运算时,如果结果的最后一位是 1,则它是一个奇数。如果最后一位是零,则它是一个偶数。

取数字 10 和 1 的二进制值。然后对两者进行与运算。
0000 1010
0000 0001
--------------
0000 0000
此处输出位为零,因此 10 是偶数。

语法

用户可以按照以下语法使用按位与运算符。

if(number & 1)//按位与逻辑
    //奇数
else
    //偶数

示例

在此示例中,首先,我们将 93 传递给 check 函数。该函数执行按位与运算,如上所示。如果 93 & 1 返回 1,则认为是奇数,否则认为是偶数。然后使用此布尔值通过 document.write 方法显示输出"93 odd"。

<html> <body> <h2>Using <i>bitwise and operator</i></h2> <div id="number"></div> <script> let output=document.getElementById("number"); function check(number) { var isOdd = number & 1; var isEven= !(number & 1); if(isOdd) { output.innerHTML= "
"
+ number + " odd"; } else output.innerHTML = "
"
+ number + " even"; } check(46); </script> </body> </html>

使用按位或运算符

当一个数字与 1 进行按位或运算时,如果结果相同,则为奇数。如果数字增加 1,则为偶数。

取 1011 或 1
1011
0001
------
1011
此处输出位等于 11,因此 11 为奇数。

语法

用户可以按照以下语法使用按位或运算符。

if ((n | 1) > n)//按位或逻辑
    //even
else
    //odd

示例

在此示例中,我们取数字 100 并将其传递给检查函数。这里的数字经过按位或逻辑,如上所述。如果结果大于数字,则为偶数。否则为奇数。这里按位或结果 100 大于 100,因此 100 是偶数。从 check 函数返回的布尔值中,我们使用 document.write 方法显示输出。

<html> <body> <h2>Using <i>bitwise or operator</i></h2> <div id="number"></div> <script> function checkOddEven(n) { if ((n | 1) > n)//even return true; else //odd return false; } let output=document.getElementById("number"); var n = 100; output.innerHTML = checkOddEven(n) == true ? n + " is Even": n + " is Odd"; </script> </body> </html>

相关文章