爲什麼需要鍵盤錄入數據?
我們書寫程序時候,數據是固定不變的,但是在開發當中,數據肯定是動態的而不是固定的,所以我們需要把固定的數據更改爲鍵盤錄入。
如何使用Scanner鍵盤錄入對象
1、導包
在class修飾的類名上面加入如下語句
import java.util.Scanner;
2、創建對象
Scanner input = new Scanner(System.in);
3、使用變量接收數據
int num = input.nextInt();
注意:
1.常用方法
nextInt(); 獲取用戶輸入的整數
nextDouble(); 獲取用戶輸入的小數
nextBoolean(); 獲取用戶輸入的boolean值 【不常用】
nextLine(); 獲取用戶輸入的一行,結果是String類型,獲取用戶輸入的字符串
next(); 結果是String類型,獲取用戶輸入的字符串
這些方法都是阻塞方法
2.阻塞方法
什麼是阻塞方法?===> 程序執行到這個方法的時候,會停止執行,並不會繼續執行,直到用戶輸入結束,程序繼續執行。
3.可能出現的異常
java.util.InputMismatchException
異常名稱: 輸入的類型不匹配異常
產生原因: 用戶輸入的類型和接收的類型不一致
解決辦法: 類型匹配即可
代碼示例
mport java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 2.創建鍵盤輸入對象 固定格式
Scanner input = new Scanner(System.in);
// 給出用戶提示性語句
System.out.print("請輸入一行字符串: ");
// 3.獲取用戶的輸入
String line = input.nextLine();
System.out.println("您輸入的數據是: " + line);
System.out.print("請輸入整數: ");
int num = input.nextInt();
System.out.println("您輸入的整數是: " + num);
System.out.print("請輸入小數: ");
double num2 = input.nextDouble();
System.out.println("您輸入的小數是: " + num);
}
}
鍵盤錄入兩個數,並將這兩個數求和,求最大值,並輸出
// 1.導包
import java.util.Scanner;
public class ScannerDemo02 {
public static void main(String[] args) {
// 2.創建鍵盤輸入對象
Scanner input = new Scanner(System.in);
System.out.print("請輸入第一個數: ");
// 3.定義變量num1 接受用戶輸入的整數
int num1 = input.nextInt();
System.out.print("請輸入第二個數: ");
// 4.定義變量num2 接受用戶輸入的整數
int num2 = input.nextInt();
// 5.定義變量sum 計算兩個數的和
int sum = num1 + num2;
// 6.定義變量max 求兩個數的最大值
int max = (num1 > num2) ? num1: num2;
// 7.輸出和以及最大值
System.out.println("兩個數的和爲: " + sum + ",兩個數的最大值爲: " + max);
}
}
鍵盤錄入兩個數,並判斷兩個數是否相等,如果兩個數相等,輸出兩個數相等,不相等就輸出兩個數不相等,同時輸出兩個數中較大的值
import java.util.Scanner;
public class ScannerDemo03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("請輸入第一個數: ");
int num1 = input.nextInt();
System.out.print("請輸入第二個數: ");
int num2 = input.nextInt();
// 三目運算符的值的類型?
// int max = (num1 > num2) ? num1: num2;
String result = (num1 == num2) ? "兩個數相等": "兩個數不相等,並且兩個數中較大的值爲: " + ((num1 > num2) ? num1: num2);
System.out.println(result);
}
}