java學習筆記——java流程控制01.使用者互動Scanner
阿新 • • 發佈:2021-08-05
用java提供的scanner類獲取使用者輸入
使用者互動Scanner
一、Scanner物件
java提供了Scanner工具類來獲取使用者的輸入
需要匯入java包
import java.util.Scanner;
基本語法
Scanner s = new Scanner(System.in);
例項:
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方法接收:"); //判斷是否還有輸入 if (scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("輸入的內容為:"+str); } scanner.close(); //IO流的類如果不關閉就會一直佔用資源 } }
這裡遇到一個next和nextLine的使用問題,next在遇到空格的時候就直接輸出了,而nextLine是把回車作為結束符,這裡如果用next方法獲取輸入的話,輸出的內容就變成了“Hello”,我想一般情況下應該都是使用nextLine,那為什麼不直接拋棄next呢?查了一下發現nextLine使用過程中有可能出現問題,把連結貼上來,方便自己解決問題。
Java中.next()和.nextLine()的區別-CSDN部落格
【Java常見問題】Scanner中nextLine()方法沒有執行就直接跳過了-CSDN部落格
二、Scanner進階使用
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = 0; float f = 0.0f; System.out.println("請輸入整數:"); //判斷是否輸入整數 if (scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("輸入的整數是:"+i); }else{ System.out.println("輸入的不是整數!"); } System.out.println("請輸入小數:"); //判斷是否輸入小數 if (scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("輸入的小數是:"+f); }else{ System.out.println("輸入的不是小數!"); } scanner.close(); //關閉scanner } }
例子:求輸入的數的和與平均數
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; int n = 0; while (scanner.hasNextDouble()){ sum += scanner.nextDouble(); n++; } double ave = sum/n; System.out.println("輸入的" + n + "個數的和為" + sum); System.out.println("輸入的" + n + "個數的平均數為" + ave); scanner.close(); } }
疑問:java中回車並不會結束事件,除了輸入非double型資料來結束迴圈,還有沒有其他方式可以結束demo中的迴圈?