# 算術運算
- 算術運算子包括加
+
、減-
、乘*
、除/
以及求餘數%
- 算術運算子皆為二元運算子
- 運算子作用的對象稱為操作數,
%
運算的兩個操作數必須是整數
- 乘法運算子是不能省略的,數學中寫的 需寫成
b*b - 4*a*c
- 除法運算時,注意加上括號!!例如: 應寫為
x/2.0/a
或x/(2.0*a)
,絕不是x/a*2.0
# 遞增遞減運算子
前置 ++
: ++i
,後置 ++
: i++
前置 --
: --i
,後置 --
: i--
- 為一元運算子
- 無論是前置或是後置,
++
皆會使變數自身 + 1,--
皆會使變數自身 - 1
int n = 5,m = 10; | |
n++; // 相當於 n = n + 1; | |
m--; // 相當於 m = m - 1; | |
System.out.println(n); // 結果為 6 | |
System.out.println(m); // 結果為 9 |
- 作為表達式的話,
前置運算子會先將變數 + 1/-1 後,再去做運算
後置運算子會先運算變數,之後再 + 1/-1
int n = 5,m = 10; | |
int a,b,c,d | |
a = n++; // a = 5 ,n = 6 | |
b = m--; // b = 10 ,m = 9 | |
n = 5,m = 10; | |
a = ++n; // a = 6 , n = 6 | |
b = --m; // b = 9 , m = 9 |
# 優先級
先乘除求餘,後加減,級別相同則由左至右算
1+2*3
2+3+4
6*2/3
小括號能改變優先級
(1+2)*3
小括號可以嵌套,越裡面的小括號,優先級越高。
((1+2)*3+(2+3)*2)*7
後置
++
--
的優先級 > 前置++
--
的優先級前置
++
--
的優先級 > 乘除的優先級
建議時常用小括號,標明計算的優先順序,免得出問題
# 複合指定運算子
二元運算子 | 功能 | 範例 | 說明 |
---|---|---|---|
= | 簡單指定 | x = y | 令 x = y |
+= | 加法指定 | x += y | 令 x = x + y |
-= | 減法指定 | x -= y | 令 x = x - y |
*= | 乘法指定 | x *= y | 令 x = x * y |
/= | 除法指定 | x /= y | 令 x = x /y |
%= | 餘數指定 | x %= y | 令 x = x % y |
指定值 x=y 之後,變數 x 原來的值被覆蓋,而 y 值不變
善用可以使程式碼變得更精簡,不善使用則... 會很困擾
# 關係運算
比較運算:對數大小關係的判斷
# 關係運算子
二元運算子 | 功能 | 範例 | 說明 |
---|---|---|---|
> | 大於 | a>b | 若 a>b 則結果為真 |
>= | 大於等於 | a>=b | 若 a≧b 則結果為真 |
< | 小於 | a<b | 若 a<b 則結果為真 |
<= | 小於等於 | a<=b | 若 a≦b 則結果為真 |
== | 等於 | a==b | 若 a=b 則結果為真 |
!= | 不等於 | a!=b | 若 a≠b 則結果為真 |
# 關係表達式
將兩個關係表達式以關係運算子連結,構成關係表達式
回傳的結果為邏輯值: true
、 false
double a = 1.0,b = -4.0,c = 3.0; | |
b*b-4.0*a*c ==0 //false | |
b*b-4.0*a*c > 0 //true |
# 注意
- 在判斷兩個表達式的值是否相等的時候,一定要用兩個等號,不能只用一個
- 關係運算子不要連著用
int a = 3,b = 5,c = 7; | |
// 正確表示 | |
if(a < b && b < c) | |
cout<<"a < b < c"<<endl; | |
// 錯誤示範 | |
if(a < b < c) | |
cout<<"a < b < c"<<endl; |
# 邏輯運算
表達、判斷多個條件之間的關係,同時成立、之一成立或不成立。
# 邏輯運算子
符號 | 功能 | 範例 | 說明 |
---|---|---|---|
&& | 邏輯 AND | a>2&&a<9 | 若 2<a<9 則結果為真 |
|| | 邏輯 OR | a<2 || a>9 | 若 a<2 或 a>9 則為真 |
! | 邏輯 NOT | !(a==1) | 若 a≠1 則結果為真 |
!
為 一元運算子&&
、||
為二元運算子
# 表達式的值
邏輯值: true
、 false
- 運算
<條件式1> && <條件式2
,兩個都為 true ➡️ true
條件式 1 | 條件式 2 | 結果 |
---|---|---|
false | false | false |
false | true | false |
true | false | false |
true | true | true |
- 運算
<條件式1> || <條件式2
,任一個為 true ➡️ true
條件式 1 | 條件式 2 | 結果 |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
- 運算
!<條件>
條件 | 結果 |
---|---|
true | false |
false | true |