Java基礎回顧_第二部分_Java流程控制

Java基礎回顧_第二部分

Java流程控制

Scanner對象(掃描器,捕獲輸入)

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入數據:");
        System.out.println("使用nextLine方式接收:");//以回車和回車爲結束符
        if (scanner.hasNextLine()){
            //使用nextLine方式接收
            String str2 = scanner.nextLine();
            System.out.println("輸出的內容爲:"+str2);
        }
        
        System.out.println("使用next方式接收:");//以空格爲結束符
        //判斷是否還有輸入
        if (scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next();
            System.out.println("輸出的內容爲:"+str);
        }
        
        scanner.close();
    }
}

我的總結:java

Scanner對象有兩個方法next()nextLine()算法

  1. next()輸入是,只要輸入了有效字符以後,輸入空格就會使後續輸入的字符失效,例如輸入hello空格world,輸出結果就只有hello;且若是一開始就輸入空格,next()方法會自動無視,不影響後續輸入有效字符。
  2. nextLine()輸入是,不用管何時輸入的空格或字符都有效,輸入多少顯示多少。只會在按回車鍵的時候結束輸入。

自用練習題:數組

  • 輸入多個數字,求它們的總數與平均數,每輸入一個數字就用回車確認一遍,當輸入數據不是數字時,結束並輸出結果。
import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double sum = 0;//做爲求和變的變量
        int m = 0;//做爲記錄輸入數字個數的變量

        System.out.println("請輸入任意個數字,並輸入一個非數字的字符來結束輸入:");
        //while循環語句
        while (scanner.hasNextInt()){
            double i = scanner.nextInt();//用來記錄每次輸入的數字
            m++;
            sum+=i;
        }
        System.out.println("輸入了"+ m + "個數字");
        System.out.println("它們的總數爲:"+ sum);
        System.out.println("它們的平均數爲:"+ sum / m);



        scanner.close();
    }
}

順序結構

  • 順序結構是Java最簡單的算法結構。即代碼從上往下,一句一句執行。code

  • 選擇結構:if語句、switch多選擇結構對象

if語句

  • if單選 結構 只有iif和執行語句作用域

  • if雙選 結構 有if和else 兩條執行語句it

  • if多選 結構 有一個if和多個else if 多條執行語句for循環

  • 嵌套 的if結構class

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入任意內容:");
        
        if (scanner.hasNextInt()){
            System.out.println("你輸入的是整數~");
        }
        else{
            System.out.println("你輸入的不是整數");
        }

        String s = scanner.nextLine();
        if (s.equals("abc")){
            System.out.println("你猜中了!");
        }
        else {
            System.out.println("你猜錯了!");
        }
        scanner.close();
    }
}

switch多選擇結構(匹配機制)import

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入任意內容:");
        String str = scanner.nextLine();
        switch (str){
            case "A":
                System.out.println("A等");
                break;
            case "B":
                System.out.println("B等");
                break;
            case "C":
                System.out.println("C等");
                break;
            case "D":
                System.out.println("D等");
                break;
            case "E":
                System.out.println("E等");
                break;
            default:
                System.out.println("補考");
        }
    }
}


循環結構

  • while循環---------------------->先判斷布爾表達式,後執行代碼
  • do...while循環---------------->先執行代碼,後判斷布爾表達式(執行代碼至少執行一次)
  • for循環
  • 加強for循環

while循環

格式:

while(布爾表達式){

//執行的代碼;

}

public class Demo01 {
    public static void main(String[] args) {
        int i = 0;
        while (i<10){
            i++;
            System.out.println(i);
        }
    }
}

do...while循環

格式:

do{

//執行的代碼;

}while(布爾表達式);

public class Demo01 {
    public static void main(String[] args) {
        int i = 0;
        do {
                i++;
                System.out.println(i);
        }
        while (i<10);
    }
}

for循環

格式:

for(初始化值 i ;布爾表達式;i 值更新){

//執行代碼;

}

public class Demo01 {
    public static void main(String[] args) {

        int i = 1;
        for (i = 1;i<10;i++){
            System.out.println(i);
        }
        System.out.println(i);//10----->布爾表達式爲假的時候跳過執行代碼,還會執行一次 i++;因此最後i變成了10!
    }
}

練習題:

  1. 分別計算1到100之間奇數的和、偶數的和。
  2. 分別用while和for循環,輸出1到1000之間能被5整除的數,而且每行輸出三個數。
  3. 打印九九乘法表

  1. 分別計算1到100之間奇數的和、偶數的和。
public class Demo01 {
      public static void main(String[] args) {
  
          int i = 1;
          int sum1 = 0;//奇數和
          int sum2 = 0;//偶數和
          for (i = 1;i<=100;i++){
              if (i%2==0){
                  sum1 += i;
              }else{
                  sum2 += i;
              }
          }
          System.out.println("最後i的值爲:"+i);
          System.out.println("1到100,奇數和爲:"+sum1);
          System.out.println("1到100,偶數和爲:"+sum2);
      }
  }

  1. 分別用while和for循環,輸出1到1000之間能被5整除的數,而且每行輸出三個數。
    while方式
public class Demo01 {
    public static void main(String[] args) {

        int i = 1;
        int j = 0;
        while (i<=1000){
            if(i%5 == 0){
                System.out.print(i+"\t");
                j++;
                if (j%3 == 0){
                    System.out.print("\n");
                }
            }
            i++;


        }
    }
}

for方式

public class Demo01 {
    public static void main(String[] args) {
        
        int j = 0;
        for(int i = 1;i<=1000;i++){
            if(i%5 == 0){
                System.out.print(i+"\t");
                j++;
                if (j%3 == 0){
                    System.out.print("\n");
                }
            }


        }
    }
}

  1. 打印九九乘法表

我的思路:先打印出全部相乘的式子,而後觀察99乘法表規律進行以下操做。

public class Demo01 {
    public static void main(String[] args) {


        for(int i = 1;i<=9;i++){
            for (int j = 1;j<=9;j++){
                //去掉乘號左邊數字大於右邊數字的式子,用空格代替顯示-------->第三步
                if (j>i){
                    System.out.print("\t");
                }else {
                    System.out.print(j+"*"+i+"="+i*j+"\t");//----->第一步打印出全部式子
                }
                //j是乘號右邊的數,每次乘到9的時候換行------->第二步
                if(j==9){
                    System.out.print("\n");
                }
            }
        }
    }
}

改進後的思路:

public class Demo01 {
    public static void main(String[] args) {
        for(int i=1;i<=9;i++){
            //用j<=i控制每一行輸出的式子個數(妙啊!!!!!!!!!)
            //經過循環累加,當j>i的時候跳出循環,從而不會打印  乘號左邊的數字大於乘號右邊的數字  的等式,妙啊!
            for (int j=1;j<=i;j++) {
                System.out.print(j + "*" + i + "=" + i * j + "\t");
            }
            //j>i時,跳出上面的for循環不打印  乘號左邊的數字大於乘號右邊的數字  的等式,直接執行下面的換行代碼,妙啊!
            //這樣又去掉了想要去掉的 重複等式(相似1*2=2和2*1=1這樣的重複等式) ,又達到了換行的效果,絕了!
            System.out.print("\n");
        }
    }
}

加強for循環

格式:

for(聲明語句:表達式){

​ //執行代碼;

}

聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其做用域限定在循環語句塊,其值與此時數組元素的值相等。

表達式:表達式是要訪問的數組名,或者是返回值爲數組的方法。

常常用於遍歷數組

public class Demo01 {
    public static void main(String[] args) {
        //定義一個數組取名爲List
        int[] List = {1,2,3,4,5};
        for (int i : List) {
            System.out.println(i);
        }
    }
}


break和continue

break用與強制退出循環體,即終止循環,跳出循環體;

continue用於終止循環體的某一次循環,即跳過某一次循環操做循環體繼續工做到直到跳出循環體。

隨筆:

​ 什麼是質數

質數是指在大於1的全部天然數中,那些只能被1和自己整除的整數。

​ 一個數若是不能以它自己的一半之內的數乘以另外一個數獲得,那麼它就是一個質數!


流程控制練習

  1. 打印三角形

    public class Demo01 {
        public static void main(String[] args) {
            //打印三角形
            for (int i = 1; i <= 5; i++) {
                for (int j = 5; j >=i; j--) {
                    System.out.print(" ");
                }
                for (int j = 1; j <=i; j++) {
                    System.out.print("*");
                }
                for (int j = 1; j <i; j++) {
                    System.out.print("*");
                }
    
                System.out.print("\n");
            }
        }
    }

相關文章
相關標籤/搜索