JavaScript 如何判断一个数字是否为偶数而不使用模运算符
在本文中,我们将学习如何在不使用模运算符的情况下判断一个数字是否为偶数。以下是具体的方法。
1. 使用按位与运算符: 当一个数字与1进行按位与运算时,如果这个数字是偶数,结果将返回0。我们将利用这个方法来判断一个数字是否为偶数。
解释: 下面的计算显示了当一个偶数与1进行按位与运算时的结果。
2&1=0 then !(0) is true, so 2 is an even number
0 0 1 0
&
0 0 0 1
0 0 0 0
3&1=1 then !(1) is false, so 3 is an odd number
0 0 1 1
&
0 0 0 1
0 0 0 1
示例:
JavaScript
function isEvenNumber(num) {
if (!(num & 1)) {
return `{num} is an even number`;
} else {
return `{num} is an odd number`;
}
}
console.log(isEvenNumber(2));
console.log(isEvenNumber(3));
输出:
2 is an even number
3 is an odd number
2. 通过将一个数字乘以二或除以二: 确保偶数不会失去小数位,因此比较结果将为 true 。而对于奇数,小数位将会丢失,比较结果将为 false 。
示例:
JavaScript
function isEvenNumber(num) {
if(Math.floor(num / 2) * 2 === num) {
return `{num} is an even number`;
} else {
return `{num} is an odd number`;
}
}
console.log(isEvenNumber(2));
console.log(isEvenNumber(3));
输出:
2 is an even number
3 is an odd number
3. 通过使用****正则表达式(JavaScript Regex)****: 通过这种方法,我们检查最后一位数字。如果最后一位数字是在(0,2,4,6,8)之间,那么这个数是偶数,否则是奇数。
例如:
JavaScript
function isEvenNumber(num) {
if(/^\d*[02468]/.test(num)) {
return `{num} is an even number`;
} else {
return `${num} is an odd number`;
}
}
console.log(isEvenNumber(2));
console.log(isEvenNumber(3));
输出:
2 is an even number
3 is an odd number
4. 使用预定义的 number 类的方法: 我们使用 number 类的 isInteger() 方法来确定数字是否属于整数。如果数字不是整数,则该函数返回 false,如果数字是整数,则返回 true。
2/2 =0 where 0 is an integer
3/2=1.5 where 1.5 is an integer
示例:
JavaScript
function isEvenNumber(num) {
if(Number.isInteger(num / 2)) {
return `{num} is an even number`;
} else {
return `{num} is an odd number`;
}
}
console.log(isEvenNumber(2));
console.log(isEvenNumber(3));
输出:
2 is an even number
3 is an odd number
5. 通过使用条件循环: 我们从2中减去一个数字,直到该数字小于2为止。然后我们将查看剩余的数字是1还是0。如果答案是1,则该数字是奇数;否则,该数字是偶数。
示例:
Javascript
function isEvenNumber(num) {
// Math.abs() is for negative number
num = Math.abs(num);
while (num >= 2) {
num = num - 2;
}
if (num === 1) {
return `{num} is an odd number`;
} else {
return `{num} is an even number`;
}
}
console.log(isEvenNumber(2));
console.log(isEvenNumber(3));
输出:
2 is an even number
3 is an odd number