1. 程式人生 > >Java%(取模運算)詳解

Java%(取模運算)詳解

一.Java的取模運算

1.實現演算法

public static double ramainder(double dividend, double dividor) {
        return dividend - dividend / dividor * dividor;
    }

2.java的取模運算支援型別:字元型(自然不包括負數)、位元組型、短整型、整型、長整型、單精度浮點型、雙精度浮點型.

二.C++的取模運算

演算法同上,
取模運算支援型別:字元型(不包括負數)、位元組型、短整型、整型、長整型、布林型別(除數不能為false,原因在C++中,true表示1,false表示0,自然除數不能為0;).

三.注意事項:奇偶判斷

先看一段程式碼:

public static void main(String[] args) {
        int arrs[] = { 2, 1, 0, -1, -2 };
        for (int i = 0; i < arrs.length; i++) {
            System.out.println(arrs[i] + (arrs[i] % 2 == 1 ? "是奇數" : "是偶數"));
        }
    }

很顯然是一段判斷奇偶性的程式碼,但是結果可能大家都能看得出來.

2是偶數
1是奇數
0是偶數
-1
是偶數
-2是偶數

為什麼-1會是偶數呢? 原因就是取模運算的實現演算法導致的.

System.out.println(arrs[i] + (arrs[i] % 2 == 1 ? "是奇數" : "是偶數"));

//修改為:

System.out.println(arrs[i] + (arrs[i] % 2 == 0 ? "是偶數" : "是奇數"));

給我一個警示:在以後的奇偶判斷使用中,使用偶數進行判斷代替使用奇數.
(同樣的現象C++中也是一樣)