如何在 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>