Java備忘筆記
  • Introduction
  • Java 特性
  • 如何開始
  • 編譯並執行 console
  • 編譯並執行 Eclipse
  • 作者介紹
  • Basic Object-Oriented
    • 類別、物件
    • 存取物件的欄位、方法
    • 初始化物件 Constructor
  • Basic Java Programming
    • 第一支Java程式
    • 變數
    • 資料型態
      • 基本資料型態
      • 參考資料型態
      • 基本與參考資料型態差異
      • 陣列
      • 字串
    • 運算子
      • 指定、算數、單元運算子
      • 關係、條件運算子
      • 三元、型態比對運算子
      • 位元運算子
    • 表達式、敘述、程式區塊
    • 流程控制
    • 靜態成員 static
      • 靜態變數
      • 靜態方法
    • 內部類別
    • 套件、載入
    • 存取修飾子
      • 修飾外部類別
    • 標準輸入 Scanner
  • Object Oriented Programming
    • 封裝
    • 繼承
    • 多型
    • 抽象
    • 介面
Powered by GitBook
On this page
  • 最簡單的指定運算子 Assignment Operator
  • 算數運算子 Arithmetic Operators
  • 合併
  • 單元運算子 Unary Operators
  • 遞增/遞減運算子的前綴(prefix)後綴(postfix)差異

Was this helpful?

  1. Basic Java Programming
  2. 運算子

指定、算數、單元運算子

介紹指定運算子、算數運算子、單元運算子

最簡單的指定運算子 Assignment Operator

就是等於符號『=』,可以把右邊的東西『指定』到左邊,並非一般數學上的『等於』

int value;
value = 10;  // 指定10 給value這個變數。

也用於物件參考(reference)的指定。

算數運算子 Arithmetic Operators

Java的算數運算子跟一般你學過的數學差不多,有加、減、乘、除,符號也一樣。另外還有『 % 』符號做取餘數的運算。

運算子Operator

描述

+

加法運算,也用於字串相加

-

減法運算

*

乘法運算

/

除法運算

%

取餘數運算

使用範例:

int a = 10;
int b = 7;
String str = "Hello";
String str2 = "Java";
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);  
System.out.println(a%b);
System.out.println(str+str2);

執行結果:

17 // 加法
3  // 減法
70 // 乘法
1  // 注意整數的除法也是整數,若要保留小數點,需要至少一種型態為浮點數
3  // 取餘數:10 / 7 = 1 ...3
HelloJava  // 字串串接

合併

算數運算子可以跟指定運算子合併,也是一般常看到的寫法。

下面兩行是等價的:

a = a+1;
a += 1;

假設a是變數, b是變數或數值:

Operator

等價

a += b

a = a + b

a -= b

a = a - b

a *=b

a = a * b

a /= b

a = a / b

a %= b

a = a % b

純粹就是可以少打幾個字,不過因為方便也很多人這樣做,很多語言都是這樣,必須要清楚。

單元運算子 Unary Operators

單元的意思是,這個運算子是用來處理『單個』運算元的,也可稱為一元運算子。

Operator

敘述

+

正號運算子 (但就算沒加,預設就是正值)

-

負號運算子 (讓負值變正,正值變負)

++

遞增運算子,遞增1

--

遞減運算子,遞減1

!

布林反向運算子 (true變false,false變true)

使用範例:

int a = +10 ;
System.out.println(a);
int b = -a;
System.out.println(b);
a++;
System.out.println(a);
b--;
System.out.println(b);
boolean flag = true;
flag = !flag;
System.out.println(flag);

執行結果:

10
-10
11
-11
false

遞增/遞減運算子的前綴(prefix)後綴(postfix)差異

我們知道 a++ 其實就是 a=a+1 ,其實 a++ 也可以寫成 ++a,但意義上完全不一樣。

a++ ,存取完a的值後,做++的動作。

++a ,先做++的動作,在讓別人存取。

看個範例:

int a = 10;
System.out.println(a++);  // 印出a的值(10)後才做++,執行完這行a為11
System.out.println(a);    // 印出a的值(11)
System.out.println(++a);  // 先把a做++,在印出a的值(12)
System.out.println(a);    // 印出a的值(12)

執行結果:

10
11
12
12

++跟--是同樣的邏輯,如果計算式寫的多又長要注意避免搞混,最簡單避免錯誤的方法就是分開寫,不要擠在一行,但每個人寫程式習慣都不同,還是要多留意。

放變數前面是先做運算,再供別人做存取。 放變數後面是存取完,再做運算。

Previous運算子Next關係、條件運算子

Last updated 4 years ago

Was this helpful?