--- tags: Java --- # Java--基礎篇 ## 工具 * 安裝最新版Java SE (Java SE 每三年做長期更新支援版本 .LTS) * 安裝FlowChart >>使用流程圖學習程式 * 設定jdk目錄:C:\Program Files\Java\jdk.11...\bin * 先解除舊版本 ## 基礎知識 * 識別字(identifier) v.s. 關鍵字(keyword) 識別字:非關鍵字,為程式設計者自訂的元素名稱 ## 變數 * Java變數一定要先宣告才能使用 * 資料型態 變數名稱 = 初值 「=」:指派、定義;新的毀會取代舊的 ```java= int var1 = 10; ``` * 變數 = 常數、其他變數、運算式 變數位址(Address/Lvalue) = 變數值(Rvalue) * 更改變數值就是指定一個新的變數值,不用重新宣告 * 新的變數值可以是數值>>會變;其他變數名稱>>不會變 * 宣告常數一定要指定常數值 final:變數值不能更改 ```java= final double PI = 3.1415926 ``` ## 基本資料型態 * 整數:byte、short、int、long 使用數值字尾型態的字元,把字面值指定成long長整數 ```java= 2451l或2451L ``` * 浮點數:float、double 使用數值字尾型態的字元,把字面值指定成float或double浮點數 ```java= 6.7f或6.7F 3.1415d或3.1415D ``` * 布林值:true或false * 字元:char('單引號')、字串("雙引號") * Escape逸出字元 ![](https://i.imgur.com/hEEZ54A.png) ## 運算式 * 運算子的優先順序 ![](https://i.imgur.com/a5bWmFB.png) * 算數運算子 ![](https://i.imgur.com/dVgdD7Y.png) * 關係運算子 ![](https://i.imgur.com/1CBUcPt.png) * 條件運算子 ![](https://i.imgur.com/CcYnwLV.png) * 位元運算子 ![](https://i.imgur.com/rlv2TBI.png) * 指定運算子 ![](https://i.imgur.com/JafyqOX.png) ## 資料型態的轉換 * 型態的優先順序: double > float > long > int > char > short > byte * 寬基本型態轉換:若運算式擁有不同型態的運算元,會自動優先轉換成順序較高的型態 * 窄基本型態轉換:強迫轉換資料型態 * 例如:a=27、b=5,原本結果為整數5 r = (float)a / (flaot)b 強迫轉換成浮點數float,其結果為5.4 ## 流程控制結構 ### 條件敘述 * if 單選條件敘述 若if條件運算式為true,就執行以下的程式區塊;若不符合,則跳出該程式區塊 ```java= if (條件運算式){ 程式敘述; } ``` * if/else 二選一條件敘述 若if條件運算式為true,就執行第一個程式區塊;false就執行第二個程式區塊 ```java= if (條件運算式) { 程式敘述1; } else { 程式敘述2; } ``` * if/else if/else 多選一條件敘述 若if條件運算式為true,就執行第一個程式區塊;false就重複使用if/else條件進行下一次判斷 * 條件小的先寫 ```java= if (條件運算式1) { 程式敘述1; } else if (條件運算式2){ 程式敘述2; } else { 程式敘述3; } ``` * switch 多選一條件敘述 只需要依照符合條件,就可以執行不同程式區塊 * case相當於「==」運算子 * 利用break關鍵字跳出switch條件敘述 * default非必要元素,為例外條件,若都沒有符合case的條件,就執行default程式區塊 ```java= switch (變數) { case 常數值1/"字串1": 程式敘述1; break; case 常數值2/"字串2": 程式敘述2; break; case 常數值3/"字串3": 程式敘述3; break; default: 程式敘述4; break; } ``` * 巢狀條件 if/else和switch條件敘述中可以擁有其他if/else或switch條件敘述 * 「?:」條件敘述運算子 使用條件來指定變數值 * 「?」:if * 「:」:else ```java= 變數 = (關係/條件運算式)?變數值1:變數值2; ``` ### 迴圈敘述 * 前測式for迴圈 順序:定義初始值>>條件運算式>>true>>程式敘述>>變數更新>>條件運算式.... 直到條件不符合時就退出 ```java= for (定義初始值;條件運算式;變數更新) { 程式敘述; } ``` * 前測式while迴圈 順序:定義初始值>>條件運算式>>true>>程式敘述>>變數更新>>條件運算式.... 直到條件不符合時就退出 ```java= 定義初始值 while (條件運算式) { 程式敘述; 變數更新; } ``` * 後測式do/while迴圈 順序:定義初始值>>程式敘述>>變數更新>>條件運算式>>true>>程式敘述>>變數更新... 直到條件不符合時就退出 * 先執行程式敘述至少一次,再檢視條件 ```java= 定義初始值 do { 程式敘述; 變數更新; } while (條件運算式); ``` * break和continue關鍵字 * break:中斷迴圈 * continue:繼續迴圈 * 巢狀迴圈 迴圈當中可以有很多層迴圈