1. 程式人生 > 資訊 >工信部:大力支援鈉離子電池發展

工信部:大力支援鈉離子電池發展

Java流程控制:使用者互動Scanner

  • 使用者互動Scanner

  • 順序結構

  • 選擇結構

  • 迴圈結構

  • break&continue

  • 練習

Scanner 物件

  • 之前我們學的基本語法中我們並沒有實現程式和人的互動,但是Java給我們提供了這樣一個工具類,我們可以獲取使用者的輸入。java.util.Scanner 是Java5的新特徵我們可以通過Scanner 類來獲取使用者的輸入。

  • 基本語法

  • Scanner S= new Scanner (System.in);
  • 通過 Scanner 類的 next()與nextLine() 方法獲取輸入的字串,再度前我們一般需要使用 hasNext()

    hasNexitLine()判斷是否還有輸入的資料。

next()

  • 一定要讀取到有效字元後才可以結束輸入。

  • 對輸入有效字元之前遇到的空白,nexi()方法會自動將其去掉。

  • 只有輸入有效字元後才能講其後面輸入的空白作為分隔符或者結束符。

  • next()不能得到帶有空格的字串。

  • package com.Ji.scanner;

    import java.util.Scanner;

    public class Demo01 {
    public static void main(String[] args) {
    //建立一個掃描器物件。用於接收鍵盤資料
    Scanner scanner = new Scanner(System.in);//new一個物件需要 alt加雙回車
    System.out.println("使用next方式接受:");
    //判斷使用者有沒有輸入字串
    if (scanner.hasNext()){
    String str =scanner.next();//程式會等待使用者程式輸入完畢
    System.out.println("輸出的內容為:"+str);
    }
    //凡是屬於IO流的類如果不關閉會一直佔用資源,要養成好習慣用完就關掉
    scanner.close();


    }
    }

nextLine()

  • 以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元。

  • 可以獲得空白。

  • package com.Ji.scanner;

    import java.util.Scanner;

    public class Demo02 {
    public static void main(String[] args) {
    //new 一個scanner 用它來接受鍵盤資料
    Scanner scanner = new Scanner(System.in);
    System.out.println("使用nextLine方式接收:");
    //hasNextLine判斷是否還有下一行輸入
    if (scanner.hasNextLine()){
    String str = scanner.nextLine();
    System.out.println("輸出的內容為:"+str);
    }
    scanner.close();
    }
    }
  • package com.Ji.scanner;

    import java.util.Scanner;

    public class Demo03 {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("請輸入資料:");
    if (scanner.hasNextLine()){//如果
    String str =scanner.nextLine();
    System.out.println("輸出的內容為:"+str);
    }
    scanner.close();
    }
    }
  • package com.Ji.scanner;

    import java.util.Scanner;

    public class Demo04 {
    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(); }
    }
  • package com.Ji.scanner;

    import java.util.Scanner;

    public class Demo05 {
    public static void main(String[] args) {
    //我們要輸入多個數字,並求其總和和平均數,每輸入一個數字用回車確認,通過非數字來結束輸入並輸出執行結果
    Scanner scanner = new Scanner(System.in);
    //定義和
    double sum=0;
    //計算輸入了多少個數字
    int m=0;
    //通過迴圈判斷是否還有輸入,並在裡面對每一次進行求和統計
    System.out.println("請輸入資料:");
    while (scanner.hasNextDouble()){//while 迴圈結構
    double x=scanner.nextDouble();
    //
    m=m+1;//也可以寫成m++
    sum =sum+x;
    System.out.println("你輸入了第"+m+"個數據,當前結果="+sum);
    }
    System.out.println(m +"個數的和為"+sum);
    System.out.println(m +"個數的平均值是" +(sum/m));

    scanner.close();
    }
    }