1. 程式人生 > >Java基礎之流程控制

Java基礎之流程控制

一、介紹

Java流程控制包括順序控制、條件控制和迴圈控制

  順序控制,就是從頭到尾依次執行每條語句操作。條件控制,基於條件選擇執行語句,比方說,如果條件成立,則執行操作A,或者如果條件成立,則執行操作A,反之則執行操作B。迴圈控制,又稱為迴路控制,根據迴圈初始條件和終結要求,執行迴圈體內的操作。

  順序結構只能順序執行,不能進行判斷和選擇,因此需要分支結構。

  Java有兩種分支結構:

  • if語句
  • switch語句

  Java中有三種主要的迴圈結構:

  • while迴圈
  • do…while迴圈
  • for迴圈

二、筆記

複製程式碼

package com.hgd.study2;

import java.util.Scanner;

/**
 * java的流程控制:順序結構 分之機構 迴圈結構
 * 
 * @author HuTiger 順序結構:通過debug模式可以看出java程式的執行時順序結構的
 * 
 *         分支結構:if語句
 *
 */
public class ProcessControl {

    public static void main(String[] args) {
        // IfStudy();
        // SwitchCaseStudy();
        // WhileStudy();
    }

    /*
     * IF語句
     */
    private static void IfStudy() {

        /*
         * 根據條件表達的世界(true||false)來判斷是否進入語句塊 if(條件表示式){ 語句塊 } 繼續執行後面的語句
         */
        int i = 100;
        if (i > 60) {
            System.out.println(i);
        }
        System.out.println("後面需要執行的語句");

        /*
         * if else 語句
         */

        // system.in就是標準輸入,可以獲取從鍵盤輸入的值
        // 通過scanner(jdk提供給我們的工具)來處理獲取到的資料
        System.out.println("請輸入分數!");
        Scanner sc = new Scanner(System.in);

        int j = sc.nextInt();// 把使用者輸入的數賦值給j
        System.out.println("控制檯獲取到的值是:" + j);

        if (j > 60) {
            System.out.println("通過");
        } else {
            System.out.println("沒通過");
        }
        System.out.println("當if else 執行後需要執行的內容");

        /*
         * if else if else if ...else
         */
        // 場景:將一個5(score)分制分為 :5分的評價等級A 4==B 3==C 其他是D
        Scanner sca = new Scanner(System.in);
        int score = sca.nextInt();
        if (score >= 0 && score <= 5) {
            if (score == 5) {
                System.out.println("A");
            } else if (score == 4) {
                System.out.println("B");
            } else if (score == 3) {
                System.out.println("C");
            } else {
                System.out.println("D");
            }
        } else {
            System.out.println("輸入不合法");
        }

        /*
         * 練習:百分制系統 90-100 優秀 75-89 良好 60-74 合格 其他 不合格
         */
        Scanner scan = new Scanner(System.in);
        int score1 = scan.nextInt();
        if (score1 >= 0 && score1 <= 100) {
            if (score1 >= 90 && score1 <= 100) {
                System.out.println("優秀");
            } else if (score1 >= 75) {
                System.out.println("良好");
            } else if (score1 >= 60) {
                System.out.println("合格");
            } else {
                System.out.println("不合格");
            }
        } else {
            System.out.println("輸入不合法");
        }

    }

    /*
     * switch case
     */
    private static void SwitchCaseStudy() {

        /*
         * 分支語句:switch case key:需要比較的表示式 value:與表示式進行比較的值
         * 執行流程:如果key和value比較的結果為true,那麼將執行case部分的程式碼,case部分可以有多個 類似於else if 部分
         * 區別是key和value之間的比較只能是== default部分是不滿足以上任何去執行的程式碼 ,類似於else
         * 
         * switch 後面括號中的表示式的值必須是符合byte,char,short,int型別的常量表達式 jdk1.7以後可以使用string
         * ,而不能用浮點型或long型別
         * 
         * switch(key) { case value: break; default: break; }
         */

        // 場景:將一個5(score)分制分為 :5分的評價等級A 4==B 3==C 其他是D
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        switch (score) {
        case 5:
            System.out.println("A");
            break;// 標準寫法 break不能少 跳出當前語句塊,如果沒有break會直接進入下一個case語句
        case 4:
            System.out.println("B");
            break;
        case 3:
            System.out.println("C");
            break;
        default:
            System.out.println("D");
            break;
        }
    }

    /*
     * while 迴圈和do while
     */
    private static void WhileStudy() {

        /*
         * 執行流程: 當條件表示式為true的時候進入程式碼塊,執行需要執行的程式碼 當條件表示式為false的時候執行後面的語句
         * 
         * while(條件表示式){ 需要執行的程式碼部分 } 後面的語句
         */

        /*
         * 場景:輸入1-100的整數分析:給輸出的值一個變數I,當i在1-100之間的時候輸出
         */
        int i = 1;// 迴圈的起點
        while (i <= 100) {
            System.out.println(i);
            // 給出迴圈的步長
            i++;
        }
        System.out.println("列印結束");
        
        
        /*
         * do while
         * 
         * do{
         * }while(條件表示式)
         */
        
        int a=1;
        do{//語句塊中的內容無論條件是否滿足都會先執行一次
            System.out.println(a);
            a++;
        }
        while(a<=0);
        
    }

    /*
     * for迴圈
     */
    private static void ForStudy() {

        /*
         * 場景:列印1-100 int i=1是迴圈的起點 i++ 迴圈的補償 i<=100 迴圈的條件
         */
        for (int i = 1; i <= 100; i++) {
            System.out.println(i);
        }
        System.out.println("列印結束");
    }
}

複製程式碼