1. 程式人生 > 其它 >第二天 Java流程控制

第二天 Java流程控制

Java流程控制

  1. 使用者互動Scanner

    • 可以獲取使用者的輸入 java.until.Scanner 通過Scanner來獲取使用者的輸入

    • 基本語法: Scanner s = new Scanner(System.in)

    • 通過Scanner 類的next()與nextLine()方法獲取輸入的字串,在讀取我們一般需要 使用hasNext()與hasnextLine()判斷是否還有輸入的資料

    • next()

        1. 一定要讀取到有效字元後才可以結束輸入
        2. 對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
        3. 只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符
        4. next()不能得到帶有空格的字串
        package com.kuang.scanner;
        
        import java.util.Scanner;
        
        public class Demo01 {
            public static void main(String[] args) {
                //建立一個掃描器物件,用於接受鍵盤資料
                Scanner scanner = new Scanner(System.in);
                System.out.println("使用next方式接收:");
        
                //判斷使用者有沒有輸入字串
                if (scanner.hasNext()){
                    //使用next方式進行接收
                    String str = scanner.next(); //程式會等待使用者輸入完畢
                    System.out.println("輸入的內容為:" + str); //輸入hello world   輸出為hello
                }
                //凡是屬於IO流的類,如果不關閉會一直佔用資源,要養成良好的習慣
                scanner.close();
            }
        }
        
    • nextLine()

      • ​ 1.以Enter為結束符,也就是說next Line()方法返回的是輸入回車之前所有的字串。
      • 可以獲得空白
      package com.kuang.scanner;
      
      import java.util.Scanner;
      
      public class Demo02 {
          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);   //輸入hello world  輸出hello world
              }
              scanner.close();
          }
      }
      
package com.kuang.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()){
            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();
    }
}
  1. 順序結構

從上到下 按順序進行

package com.kuang.struct;

public class ShuXuDemo {
    public static void main(String[] args) {
        System.out.println("hello1");
        System.out.println("hello2");
        System.out.println("hello3");
        System.out.println("hello4");
        System.out.println("hello5");
  1. 選擇結構
  • if單選擇結構:
package com.kuang.struct;

import java.util.Scanner;

public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入內容:");
        String s = scanner.nextLine();
        
        if (s.equals("Hello")){
            System.out.println(s);
        }
        System.out.println("End");
        scanner.close();
    }
}
  • if雙選擇結構:
package com.kuang.struct;

import java.util.Scanner;

public class IfDemo02 {
    public static void main(String[] args) {
        //考試大於60及格,小於60不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你的分數:");
        double v = scanner.nextDouble();
        if (v >60){
            System.out.println("你的成績為:"+ v + "成績已及格");
         }else {
            System.out.println("你的成績為:"+ v + "很抱歉,你的成績未及格");
        }
        scanner.close();
    }
}
  • if多選擇結構:
package com.kuang.struct;

import java.util.Scanner;

public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你的成績");
        double score = scanner.nextDouble();
        if (score==100){
            System.out.println("滿分");
        }else if (score<100 && score>=90){
            System.out.println("優秀");
        }else if (score<90 && score>=80){
            System.out.println("良");
        }else if (score<80 && score>=70){
            System.out.println("中");
        }else if (score<70 && score>=60){
            System.out.println("差");
        }else if (score<00 && score>=0){
            System.out.println("不及格");
        }else{
            System.out.println("輸入資料不合法!!,滿分為100分,請正確輸入!");
        }
        scanner.close();
    }
}
  • 巢狀的if結構

作業:查詢1-100之間的數(1-50 50-100)

  • Switch多選擇結構

  • 多選擇結構還有一個實現方式就是switch case語句

  • switch case 語句是判斷一個變數與一系列值中某個值是否相等,,每一個值為一個分支

Switch(expression){
    case value:
    	//語句
    	break;//可選
    case value:
    	//語句
    	break;//可選
    //你可以有任意數量的case語句
    default://可選
    	//語句
}
  • switch 語句中的變數型別可以是:
    • byte short int 或者char
    • 從JavaSE7開始支援String型別了
    • 同時case標籤必須為字串常量或者字面量

執行例項及java反編譯

package com.kuang.struct;

import java.util.Scanner;

public class SwitchDemo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你的名字");
        String name = scanner.next();
        //JDK的新特性,表示式結果可以是字串
        //字串的本質還是數字
        //反編譯  Java..變為..class(位元組碼檔案) ----反編譯(用IDEA就可以實現)
        /**
         * IDEA反編譯方法:開啟程式碼out資料夾姜class檔案考入對應程式碼
         * java資料夾即可用IDEA檢視,反編譯結束
         */
        switch (name){
            case "秦將":
                System.out.println("秦將");
                break;
            case "狂神":
                System.out.println("狂神");
                break;
            default:
                System.out.println("你幹啥呢?");
        }
    }
}