如何使用JavaScript判断一个数是奇数还是偶数?
在本教程中,让我们看看如何使用JavaScript确定一个数是奇数还是偶数。第一步是理解逻辑。什么是偶数?偶数可以被2整除,余数为0。什么是奇数?奇数在除以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 - 如果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>
使用三元和取模运算符
三元运算符是一个具有三个操作数的运算符。条件、条件为真时的值和条件为假时的另一个值是表达式的三个操作数。
如果条件为真,则执行在“?”和“:”之间的值。同样,如果条件返回假,则执行紧随“:”之后的值。
语法
用户可以按照以下语法使用三元运算符。
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。
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。使用三元操作,我们将其传递给一个奇偶检查函数,该函数检查位异或逻辑并返回一个布尔值。如果布尔值为true,则显示该数字为”偶数”,否则为”奇数”。
<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,则该数为奇数。如果最后一位是0,则该数为偶数。
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 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,则为偶数。
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>