2-2 鍵盤輸入
目前,我們已經會利用變數來改變數值,但都是在程式中做變更。本節將學習由鍵盤輸入數值,作為更改變數值的內容。換句話說,程式可以讓使用者動態地輸入數值,得到他們想要的結果,進而達到與使用者互動的目的。
2-2.1 讀入整數
Chap2_2_1 範例程式讓使用者透過鍵盤輸入二個整數值,經過簡單的算術運算後,在畫面上顯示得到的結果。
Chap2_2_1.java
執行結果
X和Y的簡單算術運算。
程式說明:
1. 想要讀取從鍵盤輸入的數值,必須經過幾道程序,這些程序包含的觀念有些複雜 ,可以將其先視為"固定語法"並且記住,重要的步驟如圖2-11所示。
2. 接著,程式分別宣告變數x和變數y,接受從鍵盤輸入的整數值。然後,針對x和y進 行加、減、乘、除和取餘數的運算。最後,顯示運算的結果。
從鍵盤進行輸入的程式(必備的三步驟)
① 可以將 import 視為”檢查”,查尋檢查 Scanner類別檔是否存在。
② 可視為接收資訊的箱子,箱子名稱 scanner 為我們自行設定,也可變更為其它的名稱。
③ nextInt() 是Scanner.java中的一個方法。關於方法(method)的詳細內容會在第七章介紹。
[補充] 由鍵盤輸入的 int 型態數值範圍為 -2,147,483,648 ~ 2,147,483,647 。同時,不
錯誤訊息
為什麼一個錯誤會造成二個錯誤訊息?
思考題 :
執行 Chap2_2_1.class, 輸入 3.5
錯誤訊息
這是發生什麼事情? 這是一執行時期錯誤(run-time error)。
[補充] 錯誤訊息有二種,一種是之前常看見的,編譯錯誤(compile error)。另一種則是現在
所看見的執行錯誤(run-time error)。從字面上我們可以很容易的了解,一種是在編
譯時即產生錯誤,這代表你沒有遵循 java 語法規範所照成的錯誤。
目前,我們已經會利用變數來改變數值,但都是在程式中做變更。本節將學習由鍵盤輸入數值,作為更改變數值的內容。換句話說,程式可以讓使用者動態地輸入數值,得到他們想要的結果,進而達到與使用者互動的目的。
2-2.1 讀入整數
Chap2_2_1 範例程式讓使用者透過鍵盤輸入二個整數值,經過簡單的算術運算後,在畫面上顯示得到的結果。
Chap2_2_1.java
// 讀入由鍵盤輸入的二個整數,進行加、減、乘、除等運算後,將結果輸出至營幕 import java.util.Scanner; class Chap2_2_1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("X和Y的簡單算術運算。"); System.out.print("請輸入整數X:"); int x = scanner.nextInt(); // 將讀入的整數值指定給變數x System.out.print("請輸入整數Y:"); int y = scanner.nextInt(); // 將讀入的整數值指定給變數y System.out.println("x + y = " + (x + y)); // 顯示x + y的值 System.out.println("x - y = " + (x - y)); // 顯示x - y的值 System.out.println("x * y = " + (x * y)); // 顯示x * y的值 System.out.println("x / y = " + (x / y)); // 顯示x / y的值(商數) System.out.println("x % y = " + (x % y)); // 顯示x % y的值(餘數) } } |
執行結果
X和Y的簡單算術運算。
請輸入整數X:5
請輸入整數Y:8
x + y = 13
x - y = -3
x * y = 40
x / y = 0
x % y = 5
程式說明:
1. 想要讀取從鍵盤輸入的數值,必須經過幾道程序,這些程序包含的觀念有些複雜 ,可以將其先視為"固定語法"並且記住,重要的步驟如圖2-11所示。
2. 接著,程式分別宣告變數x和變數y,接受從鍵盤輸入的整數值。然後,針對x和y進 行加、減、乘、除和取餘數的運算。最後,顯示運算的結果。
從鍵盤進行輸入的程式(必備的三步驟)
import java.util.Scanner; ------------------ ① 在宣告類別之前,也就是程式的一開頭。 class Chap2_2_1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); --------- ② 置於main方法的一開始 ,一定要在步驟3之前,製作一個叫scanner之Scanner型 態的箱子。 scanner.nextInt(); ---------- ③ 從scanner箱子中取得 int 數值。 } } |
圖2-11
步驟 :① 可以將 import 視為”檢查”,查尋檢查 Scanner類別檔是否存在。
② 可視為接收資訊的箱子,箱子名稱 scanner 為我們自行設定,也可變更為其它的名稱。
③ nextInt() 是Scanner.java中的一個方法。關於方法(method)的詳細內容會在第七章介紹。
[補充] 由鍵盤輸入的 int 型態數值範圍為 -2,147,483,648 ~ 2,147,483,647 。同時,不
可以輸入英文字母或是符號文字。
思考題:// 由鍵盤輸入二個整數,並且將其加減乘除後的結果輸出 class Err2_2_1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("X及Y 加減乘除運算。"); System.out.print("請輸入整數X:"); // 輸入x的值 int x = scanner.nextInt(); // 將整數給x System.out.print("請輸入整數Y:"); // 輸入y的值 int y = scanner.nextInt(); // 將整數給y System.out.println("x + y = " + (x + y)); // 顯示x + y的值 System.out.println("x - y = " + (x - y)); // 顯示x - y的值 System.out.println("x * y = " + (x * y)); // 顯示x * y的值 System.out.println("x / y = " + (x / y)); // 顯示x / y的值(商) System.out.println("x % y = " + (x % y)); // 顯示x % y的值(餘數) } } |
錯誤訊息
D:\chap2\Err2_2_1.java:6: cannot find symbol symbol : class Scanner location: class Err2_2_1 Scanner scanner = new Scanner(System.in); ^ D:\chap2\Err2_2_1.java:6: cannot find symbol symbol : class Scanner location: class Err2_2_1 Scanner scanner = new Scanner(System.in); ^ 2 errors |
為什麼一個錯誤會造成二個錯誤訊息?
思考題 :
執行 Chap2_2_1.class, 輸入 3.5
X及Y 加減乘除運算。 請輸入整數X:3.5 |
錯誤訊息
Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at Chap2_2_1.main(Chap2_2_1.java:12) |
這是發生什麼事情? 這是一執行時期錯誤(run-time error)。
[補充] 錯誤訊息有二種,一種是之前常看見的,編譯錯誤(compile error)。另一種則是現在
所看見的執行錯誤(run-time error)。從字面上我們可以很容易的了解,一種是在編
譯時即產生錯誤,這代表你沒有遵循 java 語法規範所照成的錯誤。
0 意見:
張貼留言