150天打卡day06_流程控制
今日內(nèi)容
單路分支之if
多路分支之if_else
多路分支之if_else_if
多路分支之switch_case
流程控制
首先咱們要說說什么是流程控制,以及分支流程控制。
1.流程控制:程序運行的時候,我們來控制指令的流程的順序,使用它的目的主要就是完成一個特定的業(yè)務(wù)順序。在編程語言中主要有三類,順序、分支、循環(huán),任何復(fù)雜的程序邏輯都可以通過“順序”、“選擇”、“循環(huán)”三種基本的流程控制結(jié)構(gòu)實現(xiàn)。

順序結(jié)構(gòu)
定義:是程序中最簡單的流程控制,按照代碼執(zhí)行的先后順序,依次執(zhí)行,程序中的大多數(shù)代碼都是這樣執(zhí)行的。
分支結(jié)構(gòu)
選擇結(jié)構(gòu)使用場景:當程序在運行過程中, 需要根據(jù)不同的條件而運行不同的語句而產(chǎn)生不同的結(jié)果,即可以使用分支結(jié)構(gòu)。
定義:選擇結(jié)構(gòu)也被稱為分支結(jié)構(gòu)。選擇結(jié)構(gòu)有特定的語法規(guī)則,代碼要執(zhí)行具體的邏輯運算進行判斷,邏輯運算的結(jié)果有兩個可能,所以產(chǎn)生選擇,按照不同的選擇執(zhí)行不同的代碼
循環(huán)結(jié)構(gòu)
定義:指在滿足某個條件的情況下重復(fù)的去做某個事情。
分支流程控制

1.單路分支
if語句
if語句的執(zhí)行邏輯
語法:
執(zhí)行步驟:
步驟一:執(zhí)行語句0;
步驟二: 判斷邏輯表達式的值,此表達式的值結(jié)果為boolean類型,即true或者false。此處可以是關(guān)系表達式也可以是邏輯表達式。
若值為true,則執(zhí)行if語句塊中的語句;
若值為false,則跳過if語句塊;
步驟三:執(zhí)行語句3語句
例如:如果今天是星期天,為true咱們就休息,如果為false,咱們就學(xué)習(xí)
程序執(zhí)行流程圖(重點):

if案例
例如:去超市買東西,如果總價大于500,那么就打8折,否則全額支付
2. if else 雙路分支語句
剛剛我們教了大家if的單路分支,接下來我們學(xué)習(xí)一下if else 的雙路分支
當我們在做判斷的時候出現(xiàn)否定的情況下,要執(zhí)行else后的語句塊
if-else語句的語法
執(zhí)行步驟:
步驟一:執(zhí)行指令1;
步驟二:判斷if邏輯表達式的值:
若值為true,則執(zhí)行指令2;
若值為false,則執(zhí)行指令3;
步驟三:執(zhí)行指令4語句。
程序執(zhí)行流程圖(重點)

當條件滿足時,執(zhí)行語句塊1,然后執(zhí)行if-else語句下面的語句;
否則執(zhí)行語句塊2,再執(zhí)行if-else語句下面的語句。
if_else案例
判斷用戶是否登錄
if嵌套
判斷條件可以嵌套
例如:用戶輸入有可能不合法(比如輸入字母 A)
所以可以先判斷輸入的合法性(檢查輸入是否是一個有效的 double 類型)
然后再判斷成績的等級
3. if else if 多路分支語句
if···else?if多分支語句用于針對某一事件的多種情況進行處理。
通常表現(xiàn)為“如果滿足某種條件”,就進行某種處理,否則,如果滿足另一種條件,則進行另一種處理。
if else if()語句處理分支邏輯
成績判斷
4.switch-case語句
switch-case是一種特殊的分支結(jié)構(gòu),與else if類似,但其應(yīng)用面不如else if,只能用于特殊的情況之下, switch-case可以?根據(jù)一個整數(shù)值的不同取值,從不同的程序入口開始執(zhí)行。
語法結(jié)構(gòu)如下:
switch-case流程圖如下所示:

分析上圖,可以看出它的執(zhí)行邏輯如下:
計算整數(shù)表達式的值:
若值等于整型常量值1,則從語句1開始執(zhí)行,而后語句2、3,一直執(zhí)行到語句n。
若值等于整型常量值2,則從語句3開始執(zhí)行,一直執(zhí)行到語句n。
若沒有找到匹配的值,則只執(zhí)行語句n。
通過分析可以看出,?switch是以case后的整型常量作為入口的,若值相等,即開始執(zhí)行其后面的語句。
使用switch時需要注意兩個問題:?
第一,case后面的常量值必須不同
第二,switch后面的整型表達式的值必須是整型或字符型。
switch-case和break聯(lián)合使用
break語句的作用在于?跳出switch結(jié)構(gòu)
通常case1、case2、……、caseN對應(yīng)完全不同的操作,可以和break語句配合使用,?執(zhí)行完相應(yīng)語句后即退出switch塊,不繼續(xù)執(zhí)行下面的語句。?例如:
案例
在實際應(yīng)用中,switch-case語句常常與break配合使用,例如:
代碼運行結(jié)果為:“呼叫人事部”。因為匹配case2輸出后,即break跳出switch語句了。
switch-case的優(yōu)勢
switch-case結(jié)構(gòu)在實際應(yīng)用中較廣泛, 常常?和break語句結(jié)合使用實現(xiàn)分支的功能。
在很多情況下,switch-case可以代替else if結(jié)構(gòu),而switch-case實現(xiàn)分支功能的效率要高于else if結(jié)構(gòu),并且結(jié)構(gòu)更清晰,所以推薦使用。
從JDK 7.0開始,switch-case可以支持字符串表達式,將更加方便程序的操作。
關(guān)注點贊,學(xué)習(xí)編程不迷路,筆芯?~
