「基礎編程學習」 「PHP7數組詳解」:第1章 (5)選擇分支結構

#1.9 條件判斷

上面章節講述了條件判斷語句的使用,以及常用的操作符。

下面我們使用邏輯運算符,配置選擇分支程序,做一些功能。

以較為熟悉的學習成績輸出為例。60分以下,顯示不及格;60-80分以下,顯示及格;80-100分以下,顯示優秀;100分,顯示滿分;其他的都是不合格的數據。

代碼像下面這樣:

$score = 68;if ($score < 60) {    print("不及格");} elseif ($score < 80) {    print('及格');} elseif ($score < 100) {    print('優秀');} elseif ($score === 100) {    print('滿分');} else {    print('分數無效');}

為了能能夠重複使用這個功能,而不是來一個數,寫一堆判斷,這樣做了很多重複工作。我們先提前將,把這個功能封裝為一個函數。如下:

/** * @param $score 分數 * @return string 返回字符串 */function check_score($score){    if ($score < 60) {        return "不及格";    } elseif ($score < 80) {        return '及格';    } elseif ($score < 100) {        return '優秀';    } elseif ($score === 100) {        return '滿分';    } else {        return '分數無效';    }}

好了,有了這個封裝函數,我們可以使用一系列的值進行輸出測試了。我們準備了各個階段的分數值,看能不能正確輸出:

print(check_score(45));print(check_score(60));print(check_score(78));print(check_score(89));print(check_score(98));print(check_score(100));print(check_score(-9));print(check_score(125));

在瀏覽器內輸入網址 www.array.com/chapter1.5.php ,查看返回結果。為了直觀,和簡單的樣式,我們使用bootstrap提供的css樣式渲染前端頁面,使結果看上去更為直觀。

我們發現程序按照我們預期的結果進行了輸出,這就是我們要的結果。

# 1.10 選擇分支

選擇分支語句,除了上面的if…else…,好友一個switch…case…這個常用的語法結構。

如果處理複雜的應用場景,if…else…多層嵌套,已經使程序結構變得過於複雜,難以維護。這時候可以考慮一下switch語句,看能不能給邏輯結構帶來清晰的效果。

上面一段代碼,是某國產開源商城系統內容的一段代碼。嵌套的if語句,對不同場景進行處理。下面再看一段使用switch處理的場景。

這一段實現的額功能,是根據傳入的數字,也就是日誌記錄類型,進行響應的時間區域的sql查詢。

如果=1,顯示為過去一周;

如果=2,顯示為過去一個月;

如果=3,過去三個月;

如果=4,過去半年;

如果=5,過去一年。

因為log_type在使用之前就已經約定好,卻有明確的返回值,所以使用switch…case…能免去一堆elseif的窘境。

大家注意case中必須明確地使用break跳出分支。不能省去。如果沒有寫,可是會一擼到底的。滿足條件即執行。寫程序的時候,一定不要犯語法的錯誤。