前往
大廳
主題

Java SE 學習札記 #3

Film | 2021-08-27 17:06:44 | 巴幣 0 | 人氣 122

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++)//

創作回應

更多創作