Java之戳中痛點 - (2)取余用偶判斷,不要用奇判斷


取余判斷原則:取余用偶判斷,不要用奇判斷

先看一個 程序:

package com.test;
import java.util.Scanner;

public class t1 {
    public static void main(String[] args) {    
            //接收鍵盤輸入
            Scanner in = new Scanner(System.in);
            while(in.hasNextInt()){
                int i = in.nextInt();
                System.out.println(i%2==1?"奇數":"偶數");
            }
    }
}

再看一下結果:

這里就有疑問了,結果怎么出現了-1為偶數

看一下java取余算法(%標識符)怎么計算取余,*模擬*方法實現:

//被除數 dividend 除數divisor
public static int remaindar(int dividend,int divisor){
        return dividend - dividend/divisor*divisor;
}

分析方法發現 -1取余還是 -1,所以被認定為偶數;

 

正確寫法:

package com.test;
import java.util.Scanner;

public class t1 {
    public static void main(String[] args) {    
            //接收鍵盤輸入
            Scanner in = new Scanner(System.in);
            while(in.hasNextInt()){
                int i = in.nextInt();
                System.out.println(i%2==0?"偶數":"奇數");
            }
    }
}

 結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM