# Java第二週[JPA101~103 基本架構解釋,開始解題、輸入輸出運用、final常數、double計算_浮點數除法] #### 複習用 ### 基本架構詳細解釋: ```java=1 public class JPA01 { public static void main(String[] args) { //打程式的部分 } } ``` `class`用來定義類別,而`JPA01`為類別名稱, 必須將**檔名也改為相同名稱**,否則檔案將無法執行。 看到第三行 `static`代表**永遠吃掉某塊記憶體,不會消失** `void`表示main執行結束後,**不傳回任何值** `String[] args`是命令列引數(Command line argument) 可以在執行程式時**取得使用者指定的相關參數** `args`只是個參數名稱,可以隨意命名 也可以寫成`String args[] //定義陣列`,這是彷造C語言的語法 但Java中偏好的寫法為`String[] args //定義一個字串`。 (後面會學到進階的使用方法) --- ## 開始講解題目: 先到[高科教學平台](https://elearning.nkust.edu.tw/mooc/index.php)下載題目 (限高科大學生下載檔案使用) 下載第一個壓縮檔JP1.rar,名為[題庫1] * 免費壓縮軟體:[bandizip](https://www.bandisoft.com/bandizip/) (若主機無法解壓縮rar檔案,可以下載此軟體)  對JP1 **按右鍵** 就能解壓縮 ---  * JPA01.class為 **執行檔** * JPA01為 **正解** * JPD01為 **錯誤更正檔** (修改程式或打程式,**都從此檔編譯**) --- ### 第一題(JPA01)-改錯誤:  * 請依照**2.設計說明**去修改程式碼 * 同時確認自己解答是不是跟**3.執行結果參考畫面**一樣 錯誤(JPD01): ```java=1 public class JPD01 { public static main(String args[]) { System.out.println(I love Java!); System.out.println("Java is so good!") } } ``` 1.改為`JPA01` 2.少了`void` =>`public static void main(String args[])` 3.少了`""`=>`System.out.println("I love Java!");` 4.少了`;`=>`System.out.println("Java is so good!");` 正解: ```java public class JPA01 { public static void main(String args[]) { System.out.println("I love Java!"); System.out.println("Java is so good!"); } } ``` --- ### 第二題:(解釋輸出不同格式的方法、引用插件工具箱) #### 浮點數的差別(float V.S double) 對程式設計人員來說,double 和 float 的區別是 double精度高,有效數字16位,float精度7位 但double消耗記憶體是float的兩倍,double的運算速度比float慢得多 java語言中數學函式名稱double 和 float不同,不要寫錯 能用單精度時不要用雙精度(以省記憶體,加快運算速度) | | Float | Double | | --------|------|------| | 精度 | 低(7位)| 高(16位)| | 消耗記憶體| 一倍 | 兩倍 | | 運算速度 | 快 | 慢 | ```java float a=3.14f; //java特殊用法,使用float,必須在數值後面加上f或F double b=3.14; //double則不用 ``` * TQC題組大多都用double居多,所以後期**看到浮點數都一律用double** #### 不同格式的輸出(4種) ```java=1 int a=10; float b=5.9; System.out.print("無跳行"); System.out.println("加入跳行"); //加ln為跳行 System.out.printf("a=%d b=%f\n",a,b); //用C++一樣的方法 System.out.println(a); //java特殊輸出法(與VB相同) System.out.println("串接文字用"+b); //文字與數值串接 用+ ``` #### 引用插件工具箱 ```java=1 import java.util.*; //類似C語言的#include(全工具箱) //將java.util.* import進來,其中涵蓋Scanner公用程式 import java.util.Scanner; //取工具箱裡的Scanner輸入函數 //跟 #include<stdio.h> 一樣 => 對應到printf和scanf ``` --- ### 第三題(JPA02)-輸入公斤轉換為磅數(使用輸入函數、final常數): #### **簡寫**輸入格式: * 把`keyboard`改為`key` ```java=1 import java.util.Scanner; //引用插件,Java工具箱中的Scanner(輸入) System.out.println("Please input:"); //顯示輸入提示 Scanner key=new Scanner(System.in); //寫入[輸入按鍵的動作] double kg=key.nextDouble(); //設一個變數kg為double,並且接下[鍵盤輸入的值] System.out.println(pd); //最後輸出結果 ``` #### 鍵盤輸入: ```java Scanner keyboard=new Scanner(System.in); //keyboard為物件變數名 int x=keyboard.nextInt(); //取得鍵盤輸入的整數用 keyboard.nextInt() float f=keyboard.nextFloat(); //取得鍵盤輸入的浮點數用keyboard.nextFloat() double d=keyboard.nextDouble(); //取得鍵盤輸入的浮點數用keyboard.nextDouble() String s=keyboard.nextLine(); //取得鍵盤輸入的字串用keyboard.nextLine() char c=keyboard.next(); //取得鍵盤輸入的字元用keyboard.next() ``` #### keyboard.next() VS keyboard.nextLine() ```java=1 keyboard.next() //無限制,可以打無限多個字串 keyboard.nextLine() //有特別限制,只能打一個字串 ```  解答: ```java import java.util.Scanner; //引用插件,Java工具箱中的Scanner(輸入) public class JPA02 { public static void main(String[] args) { final double kgtrn=2.20462; //單位轉換公式(常數) System.out.println("Please input:"); //顯示輸入提示 Scanner keyboard=new Scanner(System.in); //寫入[輸入按鍵的動作(物件)] double kg=keyboard.nextDouble(); //設一個變數kg為double,並且接下[鍵盤輸入的值] double pd=kg*kgtrn; //公式[公斤*轉換單位=磅] System.out.printf("%9.6f kg = %9.6f ponds\n",kg,pd); //最後輸出結果 } } ``` * **常數final**:表示該變數一旦設定之後,**就不可以再改變該變數的值** * 9.6=>9代表顯示9個數值(bits),而6(bits)則是浮點數共6位 Ex.15.000000 * 使用float或double為浮點數,**記得輸出要%f** (不是%d) --- ### 第四題(JPA03)-計算平均值(輸入函數+double計算_浮點數除法):  解答: ```java import java.util.Scanner; //引用插件,Java工具箱中的Scanner(輸入) public class JPA03 { public static void main(String[] args) { System.out.println("Please input:"); //顯示輸入提示 Scanner keyboard=new Scanner(System.in); //寫入[輸入按鍵的動作(物件)] int a=keyboard.nextInt(); //設一個變數a為int,並且接下[鍵盤輸入的值] int b=keyboard.nextInt(); //設一個變數b為int int c=keyboard.nextInt(); //設一個變數c為int double avg=(a+b+c)/3.0; //公式[相加/總數] System.out.printf("Average: %8.2f\n",avg); //最後輸出結果 } } ``` * `double avg=(a+b+c)/3.0;`由於是浮點數,所以除法必須為3.0 在求平均值時,要用除以3.0,否則會得到整數! --- 最後編輯時間:2021/3/6 1:55am. ###### tags: `JAVA課堂學習` `複習用` `高科大`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up