判斷一個數(shù)是奇數(shù)還是偶數(shù)是小學(xué)里學(xué)的基本知識喧伞,能夠被⒉整除的整數(shù)是偶數(shù)走芋,不能被⒉整除的是奇數(shù),這規(guī)則簡單又明了潘鲫,還有什么好考慮的?好翁逞,我們來看一個例子,代碼如下:
public class client {
public static void main (string [] args)
/接收健盤輸入?yún)?shù)
Scanner input = new Scanner (system.in) ;
system.out.print(”請輸入多個數(shù)字判斷奇偶:");
while ( input .hasNextInt ()){
int i = input.nextInt ( );
string str =i+"->" + (i % 2 == 1 ? ”奇數(shù)“ : ”偶數(shù)");
system.out.println(str) ;
)
}
}
輸入多個數(shù)字溉仑,然后判斷每個數(shù)字的奇偶性挖函,不能被⒉整除就是奇數(shù),其他的都是偶數(shù)浊竟,完全是根據(jù)奇偶數(shù)的定義編寫的程序怨喘,我們來看看打印的結(jié)果:
請榆入多個數(shù)宇判斷奇偶:1 2 0 -1 -2
1->奇數(shù)
2->偶數(shù)
0->偶數(shù)
-1->偶數(shù)
-2->偶數(shù)
前三個還很靠譜,第四個參數(shù)-1怎么可能會是偶數(shù)呢逐沙,這Java也太差勁了哲思,如此簡單的計算也會錯!別忙著下結(jié)論洼畅,我們先來了解一下Java中的取余(%標(biāo)示符)算法吩案,模擬代碼如下:
//模擬取余計算,dividend被除數(shù),divisor除數(shù)
public static int remainder (int dividerd,int divisor){
return dividend - dividend / divisor * divisor;
看到這段程序帝簇,相信大家都會心地笑了徘郭,原來Java是這么處理取余計算的呀。根據(jù)上面的模擬取余可知丧肴,當(dāng)輸入-1的時候残揉,運算結(jié)果是-1,當(dāng)然不等于1了芋浮,所以它就被判定為偶數(shù)了抱环,也就是說是我們的判斷失誤了。問題明白了,修正也很簡單镇草,改為判斷是否是偶數(shù)即可眶痰。
代碼如下:
i%2==0?”偶數(shù)“:"奇數(shù)“