“就象任何有感知的生物一樣,程序必須能操縱自己的世界,在執行過程中作出判斷與選擇。”這是Thinking In Java的作者說的一句話。其實大多數編程語言就有自己的流程控制機制,在JAVA中,程序有三種執行流程:順序流程、選擇流程和循環流程。這三種流程在語言之間幾乎是共同的。

順序流程

順序流程是最爲常見也是最簡單的流程,正如上圖所示,順序流程就是一條一條有序的程序語句,計算機會按照先後順序執行。

順序流程是最爲常見的一種流程,常見到我們不用過多的去學習更多關於它的知識,此處,我們用過一個簡單的程序去體驗一下即可,這個程序記錄了我們每天都在幹什麼事情。

例子程序:

選擇流程

選擇流程,又叫做分支流程。默認情況下,計算機會按照順序執行程序,但是有些情況下,我們希望計算機根據實際情況選擇不同的流程去執行,此時選擇流程就能發揮作用。JAVA爲我們提供了兩種方式去實現選擇流程:if-else語句和switch-case語句。

if-else語句

if-else語句或許是最白話文的流程控制語句,其中的else是可選的,所以它有兩種語法格式:

if(條件表達式) { 語句1 語句2 語句3}或者if(條件表達式) { 語句1 語句2 語句3} else { 語句4 語句5 語句6}

說明:

1、“條件表達式”必須產生一個boolean結果。

2、“語句”可以是一個以分號(;)結尾的簡單語句,也可以是一個包含在大括號{}裏面的語句塊。

3、當只有一條語句的時候,if語句的格式可以簡化爲:

if(條件表達式)

語句

但是,實踐告訴我們,這種簡化的方式並不是很優雅,我們極其不推薦這種寫法。

我們改造一下上面“記錄我們每天都在幹什麼”的程序來體驗一下if-else語句,改造之後需要實現如下功能:起牀洗漱後,如果是成年人就去上班,否則就去上學。

前面我提過,if-else語句可能是最爲白話文的一種流程控制語句,因爲它的語義很好理解,但是在實戰中,不同if-else寫法能夠體現一個程序員的資深程度,甚至在面試中能夠決定你的薪水等級,下面我舉一個例子:寫一個方法,判斷給定的兩個int類型參數a和b的關係(a大於b輸出1、a小於b輸出-1、a等於b輸出0)。

新手寫的:

老司機寫的:

switch-case語句

switch-case語句的語法結構如下:

switch(變量){ case 變量值1: 語句1; 語句2; 語句3; break; case 變量值2: 語句4; 語句5; 語句6; break; case default: 語句7; 語句8; 語句9;}

說明:

1、變量類型只能是int、short、char、byte、String(JDK7之後)和enum

2、JVM在進行case匹配時,默認從上向下匹配:

(1) 匹配不到,程序就執行default下面的語句(語句7、語句8、語句9),例如:

(2) 當所有case都沒有break時,JVM會從匹配到的那個才case開始執行後面所有的case,這就是我們常說的case穿透問題,例如:

因此,switch-case語句中一定要爲每個case添加break

查看原文 >>
相關文章