Java SE 學習札記 #3
使用教材 : Java 7 教學手冊 第五版 / 洪維恩 著
註:學習時使用JAVA 11版本進行,並非使用老師教學的JAVA 7
第四章 運算子、運算式與敘述(statemant)
第三章摘要:
1.運算式是由運算元 (operand) 與 運算子 (operator) 所組成。
2.一元運算子 (unary operator) 只需要一個運算元。 如 : +4 、 ~a 、 -a 與 !a 等均是由一元運算子與單一個運算元所組成。
3.算數運算子 (arithmetic operator) 的所有成員有 : 加法運算子(+) 、 減法運算子(-) 、 乘法運算子(*) 、 除法運算子 (/)、 餘數運算子 (%) 。
4.if 敘述可依據判別的結果來決定程式的流程。
5.遞增與遞減運算子有著相當大的便利性,善用他們可提高程式簡潔程度。
++ 遞增 意義 : 遞增,變數值+1
-- 遞減 意義 : 遞減,變數值-1
另外,在使用遞增/減要注意,當++在變數前時,如: ++a ,這與a++所代表的意義是不一樣的,++a會先
把a的值加1後,在執行整個敘述, a++則是會先執行整個敘述後再a的值加1。
例:
int a1 = 5,b1 = 5, c1; // 設定 int整數的值。
c1 = a1++; // c1 = a1(5),執行完成後, a1++ 後的值為 6;
b1 = ++a1; // 先加1在執行,a1值遞增後為 7 ,並且設定給 b1。
System.out.println("a1 = "+a1+",b1 = "+b1+",c1 = "+c1);
輸出 :a1 = 7,b1 = 7,c1 = 5
6.括號 () 是用來處理運算式的優先順序,也是Java的運算子。
運算子優先序 :
7.當運算式中需要做型態轉換時,有下列處理方法:
(1.)佔用位元組較少的型態轉換成位元組較多的型態
(2.)字元型態會轉換成short型態(字元會取其unicode碼)
(3.)short型態(2 bytes)遇上int型態(4 bytes),會轉換成int型態
(4.)int型態會轉換成float型態
(5.)運算式中若某個運算元的型態為double,則另一個運算元也會 轉換成double型態
(6.)布林型態不能轉換成其它的型態
習題 1.輸出下程式結果:
1.
public class App4Test {
public static void main (String[]args){
int a = 8;
System.out.println("a = "+(++a)); // 9
System.out.println("a = "+(a--)); // 9
}
}
2.
//2.
int a1 =10 , b = 20;
a %= 5;
b /= 6;
System.out.println("a = " + a); //0 ,取餘, 10/5 = 2..餘0
System.out.println("b = " + b); //3 ,整數運算,只求整數, 20/6 = 3...2(捨去)
3.
//3.
int a2 = 20 , b1 = 5;
a2 %= b1;
b1 *= 3;
System.out.println("a2 = " + a2); //0 同 //2.
System.out.println("b1 = " + b1); //15
習題 2.那些運算式為true,哪些是false:
(a) 'a' < 28// false ,ASCII碼裡,a = 97。
(b) 4+3 == 8-1//true
(c) 8>2//true
(d)'a' != 97//false ,ASCII碼裡,a = 97。
並寫出程式印出布林值。
//2-1
//我使用if-elase判斷,在第5章會教學
char a3 ='a';
if(a3 < 28){
System.out.println("a3 < 28 是true");
}else{
System.out.println("a3 < 28 是false");
}
//2-2
//只使用if敘述
if(4+3 == 8-1)
System.out.println("4+3 == 8-1 是true");
//2-3
if(8 > 2){
System.out.println("8 > 2 是true");
}else{
System.out.println("8 > 2 是false");
}
//2-4
if(a3 != 97){
System.out.println("a3 != 97 是true");
}else{
System.out.println("a3 != 97 是false,a3就是 == 97");
}
習題3.何謂一元運算子,它與其他運算子相比,它有那些特徵?
Q :與其他運算子相比,他僅需要一個運算元就能組成,其他運算子需要在前後都有運算元。
//先回家,咖啡廳好冷!!!
習題4. 運算式
4-1. 設下列各運算式,a的初始值皆為10,b的初始直接為20,是寫出下列各式中,經運算過後的num、a
、b之值 並撰寫一程式印出運算結果:
(a) num = (a++) - b// -
(b) num = (-b) * a//
(c) num = (a++) + (++b)//
(d) num = (--a) + (b--)//
(e) a += a *(b++)//