1. 程式人生 > 其它 >Java小白學習中0456

Java小白學習中0456

偷懶了好多天吶呀 >-<

四. java流程控制

 1. 使用者互動 Scanner

  • 通過Scanner 類來獲取使用者的輸入

  • 基本語法:

1 Scanner s = new Scanner (System.in);
  • 通過Scanner 類的 next() 與nextLine() 方法獲取輸入的字串,在讀取前我們一般需要 使用 hasNext() 與 hasNetLine() 判斷是否還有輸入的資料。

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

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

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

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

    • import java.util.Scanner;
      
      public class Demo01 {
          public static void main(String[] args) {
              //建立一個掃描器物件,用於接受鍵盤資料
              Scanner scanner = new Scanner(System.in);// 輸入new Scanner(System.in); 點選 alt+enter// System.in用於接收資料
              System.out.println("使用next方式接收:");
              
      //判斷使用者有沒有輸入字串 if(scanner.hasNext()){ //使用next方式接收 String str = scanner.next();//程式會等待使用者輸入完畢//輸入 scanner.next(); 點選alt+enter自動補全 System.out.println("輸出的內容為:"+str); } //凡是屬於IO(input/output)流的類如果不關閉會一直佔用資源,要及時關閉 scanner.close(); } }
  • ②nextLine():
    • 以enter為結束符,也就是nextLine() 方法返回的是輸入回車之前的所有字元。

    • 可以獲得空白。

    • import java.util.Scanner;
      
      public class Demo02 {
          public static void main(String[] args) {
              //從鍵盤接收資料
              Scanner scanner = new Scanner(System.in);
              System.out.println("使用nextLin方式接收:");
              //判斷是否還有輸入 
              if (scanner.hasNextLine()){
                  String str = scanner.nextLine();
                  System.out.println("輸出內容為:"+ str);
              }
              scanner.close();
          }
      }
      import java.util.Scanner;
      
      public class Demo03 {
          public static void main(String[] args) {
      
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("使用nextLin方式接收:");
      
              String str = scanner.nextLine();//可以不用if,直接用
      
              System.out.println("輸出內容為:"+ str);
      
              scanner.close();
          }
      }
  • 公式為:
    • new Scanner(System.in);
      System.out.println("使用  方式接收:");
      scanner.next();//scanner.nextLine();
      System.out.println("輸出的內容為:"+);
  • nextInt() nextFloat()
    • 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();
          }
      }
  • 練習:
    • import java.util.Scanner;
      
      public class Demo05 {
          //輸入多個數字,並求其總和與平均值,每輸入一個數字用回車確認,通過輸入非數字來結束輸入並輸出執行結果
          public static void main(String[] args) {
              Scanner scanner = new Scanner(System.in);
              //計算輸入多少個數
              int m = 0;
              //
              double sum = 0;
              System.out.println("請輸入資料:");
              //通過while迴圈判斷是否還有輸入,並在裡面對每一項進項求和統計
              while (scanner.hasNextDouble()){
                  double x = scanner.nextDouble();
                  m += 1;// m = m + 1 //  m++
                  sum += x;// sum = sum + x
                  System.out.println("你輸入了第"+m+"個數據,當前和為"+sum);
              }
              System.out.println(m+"個數的和為:"+sum);
              System.out.println(m+"個數的平均值為:"+(sum/m));
              scanner.close();
          }
      }

 2.順序結構

  • java 的基本結構就是順序結構,除非特別指明,否則就是按著順序從上到下依次執行。
  • 它是任何一個演算法都離不開的一種基本演算法結構。

 3.選擇結構

  • if單選擇結構

    • 需要判斷一個東西是否可行,我們才能去執行

    • 語法:

      if(布林表示式){
          //如果布林表示式為true將執行的語句
      }
    • 舉例:
      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();
              //equals :判斷字串是否相等
              if (s.equals("Hello")){
                  System.out.println(s);
              }
              System.out.println("end");
              scanner.close();
          }
      }
  • if雙選擇結構

    • 雙向選擇 if-else

    • 語法:

      if(布林表示式){
          //如果布林表示式的值為true
      }else{
          //如果布林表示式的值為false
      }
    • 練習:
      import java.util.Scanner;
      
      public class IfDemo02 {
          public static void main(String[] args) {
              //考試分數大於60為及格,反之為不及格
              Scanner scanner = new Scanner(System.in);
              System.out.println("請輸入成績:");
              int score = scanner.nextInt();
              if (score>60){
                  System.out.println("及格");
              }else{
                  System.out.println("不及格");
              }
              scanner.close();
          }
      }
  • if多選擇結構

    • 有多個選擇時

    • 語法:

      if(布林表示式 1){
          //如果布林表示式 1的值為true執行程式碼
      }else if(布林表示式 2){
          //如果布林表示式 2的值為true執行程式碼
      }else if(布林表示式 3){
          //如果布林表示式 3的值為true執行程式碼
      }else {
          //如果以上布林表示式都不為true執行程式碼
      }
    • 練習:
      import java.util.Scanner;
      
      public class IfDemo03 {
          public static void main(String[] args) {
              //成績等級劃分
              Scanner scanner = new Scanner(System.in);
              System.out.println("請輸入成績:");
              int score = scanner.nextInt();
              if(score == 100){
                  System.out.println("恭喜滿分");
              }else if (score < 100 && score >= 90){
                  System.out.println("A級");
              }else if (score < 90 && score >= 80){
                  System.out.println("B級");
              }else if (score < 80 && score >= 70){
                  System.out.println("C級");
              }else if (score < 70 && score >= 60){
                  System.out.println("D級");
              }else if (score < 60 && score >= 0){
                  System.out.println("不及格");
              }else{
                  System.out.println("資料錯誤");
              }
              scanner.close();
          }
      }
  • 巢狀的if結構

    • 可在另一個if或者else-if語句中使用if或else-if語句

    • 語法:

      if(布林表示式 1){
          //如果布林表示式 1 為true執行程式碼
          if(布林表示式 2){
              //如果布林表示式 2 為true執行程式碼
          }
      }