問題闡述在進(jìn)行程序開發(fā)時(shí),經(jīng)常需要通過判斷一個(gè)整數(shù)是奇數(shù)還是偶數(shù),來實(shí)現(xiàn)一些特殊的效果和功能,例如,讓表格的奇數(shù)行顯示一種背景顏色,偶數(shù)行顯示另一種背景顏色。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、建始網(wǎng)絡(luò)推廣、微信小程序、建始網(wǎng)絡(luò)營(yíng)銷、建始企業(yè)策劃、建始品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供建始建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
那么該如何判斷一個(gè)整數(shù)是奇數(shù)還是偶數(shù)呢?專家解答判斷奇數(shù)與偶數(shù)要從該整數(shù)與2的余數(shù)入手,如果該整數(shù)與2的余數(shù)是1,說明該整數(shù)是奇數(shù),如果余數(shù)是0,說明該整數(shù)是偶數(shù)。
在Java語(yǔ)言中求余數(shù)的運(yùn)算符是%。
假設(shè)有一個(gè)整數(shù)N,那么判斷N是奇數(shù)還是偶數(shù),可以通過N%2的結(jié)果來實(shí)現(xiàn),如果結(jié)果等于1就說明N是奇數(shù),否則N就是偶數(shù)。
判斷一個(gè)整數(shù)是奇數(shù)還是偶數(shù),實(shí)現(xiàn)代碼如下:運(yùn)行程序,判斷99和100是奇數(shù)還是偶數(shù),并輸出到控制臺(tái),結(jié)果如圖3.10所示。
專家點(diǎn)評(píng)判斷奇數(shù)和偶數(shù)在實(shí)際生產(chǎn)和生活中也經(jīng)常使用,具有重大意義,因此程序中也經(jīng)常需要對(duì)奇數(shù)和偶數(shù)進(jìn)行處理,例如在使用循環(huán)輸出信息時(shí),可以在循環(huán)變量是奇數(shù)時(shí),輸出一種符號(hào),是偶數(shù)時(shí)輸出另一種符號(hào)。
奇偶數(shù)的判定依據(jù)是:是否能被2整除。
1、通過字面解釋去實(shí)現(xiàn):采用取模(%)的做法:
public?booleam?isOdd(int?num){
return?num?%?2?!=?0;
}
注意:通過取模判斷奇偶數(shù)一定要與0進(jìn)行比較。如果是通過與1進(jìn)行比較的話會(huì)有一個(gè)問題:
0?%?2?=?0??(?0??!=??1?)?是偶數(shù)
1?%?2?=?1??(?1??=???1?)?是奇數(shù)
-1?%?2?=?-1??(?-1?!=?1?)?是偶數(shù),很明顯是錯(cuò)的
2、利用位運(yùn)算()能更好的實(shí)現(xiàn)
原理是:偶數(shù)的二進(jìn)制末位必然是0,奇數(shù)的末尾必然是1。所以只要把一個(gè)數(shù)與1進(jìn)行按與運(yùn)算,運(yùn)算結(jié)果為1則是奇數(shù),0則為偶數(shù)。
public?booleam?isOdd(int?num){
return?num??1?==?1;
}
這種方法不用擔(dān)心-1這個(gè)特殊情況,(在計(jì)算機(jī)中,負(fù)數(shù)以其正值的補(bǔ)碼形式表達(dá)的):
-1 的二進(jìn)制:
原碼:0000 0001
反碼:1111 1110
補(bǔ)碼:1111 1111
按位與計(jì)算得到:0000 0001,結(jié)果是1,則可以判斷為-1是奇數(shù)。
能夠被2整除的整數(shù)是偶數(shù),不能被2整除的是奇數(shù)。
i % 2 == 1 ? "奇數(shù)" : "偶數(shù)";
以上程序如果i為負(fù)數(shù)結(jié)果為偶數(shù)。
Java取余(%)算法代碼如下:
// dividend被除數(shù) divisor 除數(shù)public static int remainder(int dividend, int divisor){ ? ?return dividend - dividend / divisor * divisor;}
所以當(dāng)輸入 -1時(shí) 運(yùn)算結(jié)果是-1,當(dāng)然不等于1了,所以它被判定為偶數(shù)了。
因?yàn)楦臑榕袛嗍欠袷桥紨?shù)即可
i % 2 == 0 ? "偶數(shù)" : "奇數(shù)";
Java是一種可以撰寫跨平臺(tái)應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。Java?技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。
基礎(chǔ)代碼,就不打注釋了,望采納
public?class?Test{
public?static?void?main(String[]?args){
Scanner?sc?=?new?Scanner(System.in);
System.out.println("請(qǐng)輸入數(shù)字");
int?i?=?sc.nextInt();
if(i%2==0){
System.out.println("偶數(shù)");
}else{
System.out.println("奇數(shù)");
}
if(i0){
System.out.println("正數(shù)");
}else?if(i0){
System.out.println("負(fù)數(shù)");
}else{
System.out.println("0");
}
}
}