如何在 JavaScript 中判断一个数字是奇数还是偶数?
在本教程中,让我们看看如何使用JavaScript来确定一个数字是奇数还是偶数。第一步是理解逻辑。什么是偶数?偶数可以被 2 整除。余数将为零。什么是奇数?奇数除以 2 后会有余数。
使用 if-else 条件和取模运算符
"if" 将检查一个条件,如果条件为真,则执行 if 代码块。如果条件为假,则执行 else 代码块。
JavaScript 中的取模运算符返回余数。
语法
用户可以按照以下语法使用if else 语句和取模运算符。
if(number % 2==0){ //The number is even } else { //The number is odd }
算法
步骤 1 - 将数字读入变量 n。
步骤 2 - 将 n 除以 2 并将余数保存在名为 r 的变量中。
步骤 3 -
If r==0, print "even" If r!=0, print "odd"
示例
在这个示例中,我们将 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>
使用三元运算符和取模运算符
一个三元运算符是一个带有三个操作数的运算符。条件、如果条件为真时的值以及如果条件为假时的值是表达式的三个操作数。
如果条件为真,则执行"?"和":"之间的值。类似地,如果条件返回假,则执行":"后面的值。
语法
用户可以按照以下语法使用三元运算符。
var result = condition? "true block": "false block";
示例
在这个示例中,131 被赋值给一个变量。接下来,我们使用上面的语法检查其余数。这里余数是 1。因此,三元运算的假代码块被执行。因此,我们得到输出 "数字是奇数"。
<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。
Consider 11 XOR 1 1011 0001 ----- 1010 is 10, and it's a decrement; hence 11 is an odd number.
用户可以按照以下语法使用按位异或运算符。
语法
if ((n ^ 1) == (n + 1))//bitwise xor logic //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,则它是奇数。如果最后一位是零,则它是偶数。
Take the binary value of numbers 10 and 1. Then AND both. 0000 1010 0000 0001 -------------- 0000 0000 Here the output bits are zero and hence 10 is an even number.
语法
用户可以按照以下语法使用按位与运算符。
if(number & 1)//bitwise and logic //odd else //even
示例
在这个示例中,首先,我们将 93 传递给 check 函数。该函数执行按位与运算,如上所述。如果 93 & 1 返回 1,则认为它是奇数,否则认为它是偶数。然后,此布尔值用于使用 document.write 方法显示输出 "93 奇数"。
<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,则它是偶数。
Take 1011 OR 1 1011 0001 ------ 1011 Here the output bits are equal to 11 hence 11 is an odd number.
语法
用户可以按照以下语法使用按位或运算符。
if ((n | 1) > n)//bitwise or logic //even else //odd
示例
在这个示例中,我们取数字 100 并将其传递给 check 函数。这里数字经过上面解释的按位或逻辑。如果结果大于该数字,则它是偶数。否则它是奇数。这里 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>