1. 程式人生 > 實用技巧 >java基礎筆記(六)——java流程控制Scanner

java基礎筆記(六)——java流程控制Scanner

使用者互動Scanner

使用next()方式接收鍵盤輸入資料(不常用)

 		//建立一個掃描器物件,用於接收鍵盤輸入資料
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
        //判斷使用者有沒有輸入資料
        if (scanner.hasNext()){
            //接收使用者的資料
            String str = scanner.next();
            //輸出的內容
            System.out.println("輸出的內容:" + str );
        }
        //凡是用完IO流,記得把資源關閉
        scanner.close();

使用nextLine()方式接收鍵盤輸入資料(常用)

		//建立鍵盤輸入物件,接收使用者鍵盤輸入的資料
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收資料:");
        //判斷使用者輸入的資料是否還有下一行
        if (scanner.hasNextLine()){
            //接收使用者輸入的資料
            String str = scanner.nextLine();
            System.out.println("顯示輸入的資料:" + str);
        }

        //使用IO流後記得關閉資源
        scanner.close();
  • 當輸入的資料只有一行時,可以這麼寫

    • 	//定義鍵盤輸入流物件,接收鍵盤輸入資料
            Scanner scanner = new Scanner(System.in);
            System.out.println("請輸入資料:");
            String str = scanner.nextLine();
            System.out.println("顯示輸入的資料:" + str);
            //使用IO流後,記得關閉資源
            scanner.close();
      

next()與nextLine()的比較

Scanner進階

  • scanner.hasNextInt():判斷使用者輸入的是否還有int型資料

  • scanner.netInt():接收int型資料

  • ...

  • 案例

    • //問題:輸入多個數字,求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入並執行輸出結果
            //建立鍵盤輸入流物件
            Scanner scanner = new Scanner(System.in);
            //提示使用者輸入資料
            System.out.println("請輸入數字:");
            //定義一個sum變數記錄總和
            double sum = 0;
            //定義一個count變數記錄變數的個數
            int count = 0;
            //while迴圈判斷輸入的數字
            while (scanner.hasNextDouble()){
                //接收資料並計算總和
                sum = sum + scanner.nextDouble();
                //對變數個數進行累加
                count++;
                //顯示當前總和
                System.out.println("當前總和為:" + sum + ",共有" + count +"個數據");
            }
            System.out.println(count + "個數的總和為:" + sum);
            System.out.println(count + "個數的平均值為:" + (sum/count));
            //關閉IO流
            scanner.close();