如何在 JavaScript 中判断一个数字是奇数还是偶数?
在本教程中,让我们看看如何使用 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>