Java入門-Java學習路線課程第三課:選擇結構

本博客地址 | GitHub | 更多資源免費下載

JavaSE選擇結構

什麼流程控制?

  • 就是用來控制程序中各語句的執行順序。

流程控制分以下三類

  • 順序(如左圖)

  • 選擇結構(如右圖)

  • 循環結構(後一課講)

如圖 :

順序左 選擇結構右

流程圖:

逐步解決指定問題的步驟和方法的一種圖形化表示方法
流程圖

選擇結構的分類

  • if語句

  • switch語句

if語句四種格式

  • 基本if選擇結構:可以處理單一或組合條件的情況

  • if-else選擇結構:可以處理簡單的條件分支情況

  • 多重if選擇結構:可以處理分段的條件分支情況

  • 嵌套if選擇結構:可以處理複雜的條件分支情況

switch選擇結構

  • 多重分支並且條件判斷是等值判斷的情況

基本if的流程圖

在這裏插入圖片描述

基本if的語法:

if(條件){

​ //(縮進)代碼塊

}

if小知識:

當有一條語句時,可以省略{},但不推薦。

if後面括號的條件結果只能爲truefalse,如果條件爲true,則執行代碼塊,否則不執行。

if的應用演示代碼1如下:

package org.gyun.test;

/**
 * @ClassName:Demo1.java
 * @Description:if的應用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-3 下午4:25:01
 * @Version:1.0
 */
public class Demo1 {

	/**
	 * 主方法 實現需求:  	 * 
	 * if 在一條語句的情況下,可以省略{},不推薦省略!強烈要求加{}	 * 
	 */
	public static void main(String[] args) {
		// 變量聲明賦值
		int num = 10;
		// 判斷
		if (num > 10)//注意沒有加{}注意縮進
			System.out.println(num);
		// 更新num 
		num++; // 注意:這個一行不用考慮++在前還是後,即num的值就是num+1
		System.out.println(++num); // 打印是num自加1之後的值,即打印爲:12
		System.out.println(num++); // 打印是num先賦值時的值,注意:不是自加1後的值,即打印爲:12
		System.out.println(num); // 打印是num自加1之後的值,即打印爲:13
	}
}

if的應用演示代碼2如下:

package org.gyun.test;

/**
 * @ClassName:Demo2.java
 * @Description:if複雜應用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-3 下午4:59:36
 * @Version:1.0
 */
public class Demo2 {
	/**
	 * 主方法: 分析需求:
	 */
	public static void main(String[] args) {
		// 調用方法
		// demo1();
		// demo2();
		// demo3();
		// 需求: 如果百米賽跑在10秒內 可以根據條件進入男子和女子組
		// 語法: if(條件){} 注意:條件的結果是布爾值,即true和false 是true,則執行代碼塊,否則不執行!
		// 聲明變量
		String sex = "男";
		int s = 91;
		// if判斷
		if (s < 10) {// 結果爲true
			// 注意java裏比較字符串用equals
			if ("男".equals(sex)) {
				System.out.println("進入男子組");
			} else if ("女".equals(sex)) {
				System.out.println("進入女子組");
			} else {
				System.out.println("sex未知");
			}
		} else {// false,就執行這一行打印
			System.out.println("淘汰了");
		}
	}

	// 多重if選擇結構  使用多重if選擇語句處理問題時需要注意順序,切記不能任意調換。
	private static void demo3() {
		// 聲明變量
		int java = 91;
		// 互斥
		if (java >= 100) {
			System.out.println("良好");
		} else if (java >= 80) {
			System.out.println("中等");
		} else if (java >= 60) {
			System.out.println("及格");
		} else {
			System.out.println("差");
		}
	}

	// 使用if-else選擇結構
	private static void demo2() {
		// 聲明變量
		int java = 91;
		// 互斥
		if (java > 90) {
			System.out.println("給予獎勵!");
		} else {
			System.out.println("蹲馬步");
		}
	}

	/**
	 * 基本的if選擇結構
	 * 
	 * 使用複雜條件的if選擇結構  如:	if (java > 90 && music > 80 || java == 100 && music > 70) {
	 * 
	 * 結合運算符的優先級編寫條件**
	 * 
	 * 最高的優先級:( )
	 * 
	 * 最低的優先級:=
	 * 
	 * 優先級:!> 算術運算符 > 關係運算符 > && > ||
	 * 
	 * 複雜條件使用括號提高可讀性 
	 * 
	 * 需求條件:
	 * 達成其中一個條件,就給予獎勵 
	 * 1.條件1 java>90 且music>80 
	 * 2.條件2 java==100 且 music>70
	 */
	// 
	private static void demo1() {
		// 聲明變量
		int java = 91;
		int music = 81;
		// 結果爲true,就打印:給予獎勵!
		if (java > 90 && music > 80 || java == 100 && music > 70) {
			System.out.println("給予獎勵!");
		}
	}
}

switch的使用

	 switch (表達式) {
          
            case 1:
                //執行需求塊 如:System.out.println("參加北京大學組織的1個月夏令營");
                //不要忘記break
                break;
            case 2:
                //執行需求塊 如:System.out.println("獎勵外星人筆記本電腦一臺 ");
                //不要忘記break
                break;
            case 3:
                //執行需求塊 如:System.out.println("獎勵手機一部 ");
                //不要忘記break
                break;
            default:
                //執行需求塊 如:System.out.println("不給任何獎勵 ");
                //不要忘記break
                break;
        }

switch小知識:

使用switch選擇結構要注意以下幾點:
   1.多個case後的常量不能重複   
   2.switch後的小括號中的表達式只允許爲:
          基本數據類型:char byte short int
          引用數據類型:String enum(枚舉,後面會學)    
   3.switch語句的前後順序可以進行顛倒。
   
使用場景:
   必須是等值判斷。

switch演示案例:

package org.gyun.test;

import java.util.Collections;
import java.util.Scanner;

/**
 * MyEclipse 10.7.1工具會報錯
 * 以下使用的工具爲:Idea 2018.3
 * @ClassName:Demo3.java
 * @Description:switch的應用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-5 下午1:56:14
 * @Version:1.0
 */
public class Test1 {
    /*
     * 需求: 
     * 如果第一名,參加麻省理工大學組織的1個月夏令營 
     * 如果第二名,獎勵惠普筆記本電腦一部 
     * 如果第三名,獎勵移動硬盤一個 
     * 否則,不給任何獎勵
     * 分析需求: //變量 rank 名次
     */
    public static void main(String[] args) {
        // ifMethod();
        // 聲明變量
        // int rank=1;//寫死,代碼沒有靈活性了
        // 用Scanner對象輸入數據 三步走: 引包 創建對象 使用
        Scanner input = new Scanner(System.in);
        // 用變量接收輸入的值 //簡潔 好用 複用
        System.out.print("請輸入名次:");
        //int rank = input.nextInt();
        // switch的使用
        String rank = input.next();
        /*
        	使用switch語句要注意以下幾點:
        	1.多個case後的常量不能重複
        	2.switch後的小括號中的數據類型只允許爲:
        	基本數據類型:char byte short int
        	引用數據類型:String enum(枚舉,後面會學) 
        	3.switch語句的前後順序可以進行顛倒。
        */
        switch (rank) {
            //和if中的else的功能一樣,只有switch中的case全都不匹配時,就會選擇默認的選項default
            default:
                System.out.println("不給任何獎勵 ");
                //不要忘記break
                break;
            case "a":
                System.out.println("參加麻省理工大學組織的1個月夏令營");
                //不要忘記break
                break;
            case "b":
                System.out.println("獎勵惠普筆記本電腦一部 ");
                //不要忘記break
                break;
            case "c":
                System.out.println("獎勵移動硬盤一個 ");
                //不要忘記break
                break;
        }
    }

    private static void ifMethod() {
        // 聲明變量
        // int rank=1;//寫死,代碼沒有靈活性了
        // Scanner對象 三步走: 引包 創建對象 使用
        Scanner input = new Scanner(System.in);
        // 用變量接收輸入的值 //簡潔 好用 複用
        System.out.print("請輸入名次:");
        int rank = input.nextInt();
        // 多重if
        if (rank == 1) {
            System.out.println("參加麻省理工大學組織的1個月夏令營");
        } else if (rank == 2) {
            System.out.println("獎勵惠普筆記本電腦一部 ");
        } else if (rank == 3) {
            System.out.println("獎勵移動硬盤一個 ");
        } else {
            System.out.println("不給任何獎勵");
        }
    }
}

break跳出switch或循環小知識(break案例演示請看下一章循環結構):

使用場景:
     1.在選擇結構switch語句中使用
     2.在循環語句中使用
     3.其它場景使用沒有作用

作用:
    結束(終止)switch或者循環

default的作用:

和if中的else的功能一樣,只有switch中的case全都不匹配時,就會選擇默認的選項default

switch與多重if的區別

  • 相同點:

都是用來處理多分支條件的結構

  • 異同點:

switch選擇結構:只能處理等值條件判斷的情況

多重if選擇結構:沒有switch選擇結構的限制,特別適合某個變量處於某個連續區間時的情況


———— 精 選 文 章 ————
  1. Java入門-Java學習路線課程第一課:初識JAVA
  2. Java入門-Java學習路線課程第二課:變量與數據類型
  3. Java入門-Java學習路線課程第四課:循環結構
  4. Java入門-Java學習路線課程第五課:一維數組
  5. Java入門-Java學習路線課程第六課:二維數組
  6. Java入門-Java學習路線課程第七課:類和對象
  7. Java入門-Java學習路線課程第八課:方法和方法重載
  8. Java入門-Java學習路線擴展課程:equals的使用
  9. Java入門-Java學習路線課程面試篇:取商 / 和取餘(模) % 符號的使用
  10. Java進階-Java學習路線課程第一課:Java集合框架-ArrayList和LinkedList的使用
  11. Java進階-Java學習路線課程第二課:Java集合框架-HashSet的使用及去重原理
  12. JavaWEB-Java學習路線課程:使用MyEclipse工具新建第一個JavaWeb項目(一)
  13. JavaWEB-Java學習路線課程:使用MyEclipse工具新建項目時配置Tomcat服務器的方式(二)
  14. Spring框架-Java學習路線課程第一課:Spring核心
  15. Spring框架-Java學習路線課程:Spring的擴展配置
  16. Springboot框架-Java學習路線課程:Springboot框架的搭建之maven的配置
  17. java學習:在給學生演示用Myeclipse10.7.1工具生成War時,意外報錯:SECURITY: INTEGRITY CHECK ERROR
  18. 使用jquery發送Ajax請求的幾種異步刷新方式
  19. idea Springboot啓動時內嵌tomcat報錯- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
  20. 一個簡單的SSM框架Demo(登錄(包含攔截器)和註銷

更多免費資源請關注微信公衆號:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章