Java 快速導覽 - 算術運算

Java 的算術運算 (arithmetic operation) 有加、減、乘、除、取餘數等,這些都需要兩個運算元 (operand) 。算術運算子 (arithmetic operator) 如下列表

運算子功能範例
+a + b
-a - b
*a * b
/a / b
%取餘數a % b



基本資料型態 (primitive data type) 中的算術型態都可以做算術運算,以下為整數型態 (integer type) 做算術運算的例子
class ArithIntDemo {
    public static void main(String[] args) {
        int a, b, c;
        a = 8;
        b = 3;
        
        c = a + b;
        System.out.println("a + b = " + c);
        
        c = a - b;
        System.out.println("a - b = " + c);
        
        c = a * b;
        System.out.println("a * b = " + c);
        
        c = a / b;
        System.out.println("a / b = " + c);
        
        c = a % b;
        System.out.println("a % b = " + c);
    }    
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:ArithIntDemo.java
   功能:示範算術運算子的使用
   作者:張凱慶
   時間:西元 2010 年 10 月 */


編譯後執行,結果如下



注意程式的第 16 行
c = a / b;


由於是利用整數型態進行計算,所以得到的結果,程式印出的第 4 行也會是整數,這被稱為整數除法 (integer division) 。


以下為浮點數型態 (floating-point type) 做算術運算的例子,請留意,浮點數型態不能做取餘數的計算
class ArithFloatDemo {
    public static void main(String[] args) {
        double a, b, c;
        a = 8.3;
        b = 2.2;
        
        c = a + b;
        System.out.println("a + b = " + c);
        
        c = a - b;
        System.out.println("a - b = " + c);
        
        c = a * b;
        System.out.println("a * b = " + c);
        
        c = a / b;
        System.out.println("a / b = " + c);
        
        c = a % b;
        System.out.println("a % b = " + c);
    }    
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:ArithFloatDemo.java
   功能:示範算術運算子的使用
   作者:張凱慶
   時間:西元 2010 年 10 月 */


編譯後執行,結果如下



Java 的物件導向 (object-oriended) 的程式設計模式可以使運算子多載 (operator overloading) 。這是說相同的運算子在不同資料型態可以設定成不同的用途,例如,加法運算子 (additive operator) 在字串用於字串的連結 (concatenation) ,如下範例
class ArithStringDemo {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "world";
        String c = "!";
        String d = " ";
        String e;
        
        e = a + b;
        System.out.println(e);
        
        e = a + d + b;
        System.out.println(e);
        
        e = a + d + b + c;
        System.out.println(e);
    }    
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:ArithStingDemo.java
   功能:示範算術運算子的多載
   作者:張凱慶
   時間:西元 2010 年 10 月 */


編譯後執行,結果如下



中英文術語對照
算術運算arithmetic operation
運算元operand
算術運算子arithmetic operator
基本資料型態primitive data type
整數型態integer type
整數除法integer division
浮點數型態floating-point type
物件導向object-oriended
運算子多載operator overloading
加法運算子additive operator
連結concatenation






沒有留言: