Scanner()類:
作用:起一個數據傳遞的作用,不用Scanner()時,數據需要在代碼中輸入(感覺跟靜態的方式一樣,數據值已經定義好了);使用了Scanner(),可以在控制檯中輸入數據(感覺變成了動態的方式)。
具體用法:Scanner sc = new Scanner(System.in);
然後sc對象(上面定義的對象)調用下列方法(函數),讀取用戶在命令行輸入的各種數據類型:hasnext.Byte(),hasnextDouble(),hasnextFloat(),hasnextInt(),hasnextLin(),hasnextLong(),hasnextShot()
這些用來判斷輸入的數據是否符合定義的數據類型,符合true(數據輸入),不符合false(數據不執行任何輸入)
比如:hasnextInt(); 判斷輸入的是否爲整數,這時候如果不是整數,他就不會輸入這個數據。
例子:有N個人坐在一起,第一個人年齡爲10,後面人的年齡比前一個人大2歲,求第N個人的年齡是多少。
不使用scanner:
public class PersonAge {
public static void main(String[] args) {
int sum = 0;
int n = 0;//輸入這個n表示的就是N個人,通過這裏輸入數據
if (n > 0){
for (int i = 0; i < n; i++) {
sum = 10 + (n-1)*2;
}
System.out.println("第"+n+"個人的年齡爲:"+sum);
}
else{
System.out.println("輸入的數字不符合要求!");
}
}
}
使用scanner:
import java.util.Scanner;
public class PersonAgeScanner {
public static void main(String[] args) {
System.out.println("輸入人數n,按非數字鍵結束");//文字提示用戶輸入數據
Scanner sc = new Scanner(System.in); //使用scanner類
int n = 0; //屬性
int sum = 0;
while(sc.hasNextInt()){ //定義的對象“.”(調用)hasNextInt()方法判斷輸入數據是否符合要求
n = sc.nextInt(); //傳遞參數
sum = 10 + (n-1)*2; //程序
System.out.println("第"+n+"個人的年齡爲:"+sum);
}
}
}