判偶不判奇

    判斷一個數是奇數仍是偶數是小學裏學的基本知識,可以被2整除的整數是偶數,不能被2整除的是奇數,這規則簡單又明瞭,還有什麼好考慮的?好,咱們來看一個例子,代碼以下: java

public class Client {  
     public static void main(String[] args) {  
          //接收鍵盤輸入參數  
          Scanner input = new Scanner(System.in);  
          System.out.print("請輸入多個數字判斷奇偶:");  
          while(input.hasNextInt()){  
            int i = input.nextInt();  
            String str =i+ "->" + (i%2 ==1?"奇數":"偶數");  
            System.out.println(str);  
          }  
     }  
}
    輸入多個數字,而後判斷每一個數字的奇偶性,不能被2整除就是奇數,其餘的都是偶數,徹底是根據奇偶數的定義編寫的程序,咱們來看看打印的結果:


請輸入多個數字判斷奇偶:1 2 0 -1 -2  
                        1->奇數  
                        2->偶數  
                        0->偶數  
                        -1->偶數  
                        -2->偶數 
前三個還很靠譜,第四個參數﹣1怎麼可能會是偶數呢,這Java也太差勁了,如此簡單的計算也會錯!別忙着下結論,咱們先來了解一下Java中的取餘(%標示符)算法,模擬代碼以下:
算法

//模擬取餘計算,dividend被除數,divisor除數  
public static int remainder(int dividend,int divisor){  
     return dividend - dividend / divisor * divisor;  
}
看到這段程序,相信你們都會心地笑了,原來Java是這麼處理取餘計算的呀。根據上面的模擬取餘可知,當輸入-1的時候,運算結果是-1,固然不等於1了,因此它就被斷定爲偶數了,也就是說是咱們的判斷失誤了。問題明白了,修正也很簡單,改成判斷是不是偶數便可,代碼以下:

i%2 ==0?"偶數":"奇數"
相關文章
相關標籤/搜索