Java流程控制(一)
阿新 • • 發佈:2022-01-15
Java流程控制(一)
Scanner類
-
作用:
-
可以通過Scanner類獲取使用者輸入
Scanner s = new(System.in);//將使用者輸入賦值給s
-
使用next()或nextLine()方法獲取輸入的字串
-
在讀取前一般用hasNext()與hasNextLine()判斷是否還有 輸入的資料
-
用完scanner之後要呼叫close()方法關掉(節省資源)
public class Demo1 { public static void main(String[] args) { Scanner s = new Scanner(System.in);//將使用者輸入賦值給s //通過hasNext每次判斷是否有句子輸入 if(s.hasNext()){ String str = s.next();//識別一句,識別完一句之後游標移動到下一句,當再次用next()時會識別下一句 System.out.println("輸出內容為:"+str); } s.close();//用完之後要關掉 } } 輸入:sxw 輸出: 輸出內容為:sxw
public class Demo1 { public static void main(String[] args) { Scanner s = new Scanner(System.in);//將使用者輸入賦值給s //進行迴圈,每次判斷是否還有句子,當沒有句子時結束 while(s.hasNext()){ String str = s.next();//識別一句,識別完一句之後游標移動到下一句,當再次用next()時會識別下一句 System.out.println("輸出內容為:"+str); } s.close();//用完之後要關掉 } } 輸入:ad fs gg 輸出: 輸出內容為:ad 輸出內容為:fs 輸出內容為:gg
-
-
-
方法:
-
next():
- 只有讀到有效字元後才能結束輸入
- 對輸入有效字元之前遇到的空白,next()方法會自動將其去掉。(例:” sss“會成為"sss")
- 對輸入有效字元之後遇到的空白,會被作為分隔符或結束符。(例:”a1 b2 c3“會成為"a1" "b2" "c3")
- next()不能得到帶有空格的字串
-
nextLine():
-
以Enter(回車)為結束符,也就是說nextLine()方法返回的是輸入字元前的所有字元
-
可以獲得空白
public class Demo1 { public static void main(String[] args) { Scanner s = new Scanner(System.in); if (s.hasNext()){ String str=s.nextLine(); System.out.println("輸出內容為:"+str); } s.close();//用完之後要關掉 } } 輸入:ad fs gg 輸出: 輸出內容為:ad fs gg
public class Demo2 { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str=s.nextLine(); System.out.println("輸出內容為:"+str); s.close();//用完之後要關掉 } } 輸入:ad fs gg 輸出: 輸出內容為:ad fs gg
-
hasNext():判斷是否有資料輸入
-
hasNextInt():判斷是否有整數輸入
-
hasNextDouble():判斷是否有Double資料輸入
-
hasNext..():判斷是否有..資料輸入(..中可以填入Int、Double等等)
-
next():讀字串(String型別)
-
nextDouble():讀Double型別資料
-
nextInt():讀Int型別資料
-
next..():讀..型別資料
-
例:輸入多個數字,並求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入並輸出執行結果:
//我們可以輸入多個數字,並求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入並輸出執行結果 import java.util.Scanner; public class Demo2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; int num=0; //scanner.hasNextDouble()判斷是否有Double型別的資料輸入,如果不是Doule型別(比如x),則跳出迴圈 while(scanner.hasNextDouble()){ sum+=scanner.nextDouble(); num++; } scanner.close(); System.out.println("總和為:"+sum); System.out.println("平均數為:"+(sum/num)); } } 輸入: 20 30 40 x 輸出: 總和為:90.0 平均數為:30.0
-
-