程式流程式控制制結構和方法
程式流程式控制制結構分為:順序、選擇、迴圈以及異常處理結構。語句是程式的基本組成單位。在java中分簡單語句和符合語句,簡單語句就是一行代碼,例如,privateint3=3;複合陳述式就是一些簡單語句的組合了,例如一個方法等等。一般來說語句的執行流程是按順序來進行的,但是當遇到一些特殊的條件,比如迴圈,這時候語句就會按照流程式控制制結構來進行了。
(1)選擇結構
選擇結構用於根據不同的條件,實現不同的操作,它提供了一種機制,使得程式根據相應的條件運行對應的語句。java言語實現選擇結構有兩種形式:一種是兩路分支選擇的if-else語句,另一種是多分枝選擇的switch語句。選擇語句需要用到邏輯學裡面的東西,但是比較淺顯,如命題的真假,是否等。邏輯命題用於邏輯運算式表示,用作兩路分支或多路分支結構的邏輯條件。
顯然,我們比較關心條件的書寫,那這個條件一般有:關聯運算式,邏輯運算式和條件運算運算式。
①關聯運算式:用關係運算子把兩個運算式串連的式子。計算兩個同類型運算式的值,然後進行比較,其結果為:真(true)或假(false)。例如:
x%2==0;
x+y>=0;
②邏輯運算式:運算元是邏輯值且用邏輯符串連的運算式的式子成為邏輯運算式,其值仍為邏輯值。例如:
x>6&&y<3;
x>6||y>8;
y%4==0&&y%100!=0&&y%400==0//y是閏年條件
③條件運算運算式:由三目運算子串連起來的運算式,文法格式為:(邏輯運算式)?(運算式1):(運算式2)。當邏輯運算式的值為真時,返回運算式1的值,否則,返回運算式2的值。
(2)if-else語句
一般的if-else語句是這樣的,
複製代碼 代碼如下:
if(邏輯運算式){或if(邏輯運算式)語句1;
語句1;[else語句2;]
}else{
語句2;
}
if語句是專門用來實現選擇結構的語句,它根據邏輯條件中的真假來決定運行兩種操作中的一種。例如:閏年的條件是:能被4整除但又不能被100整除,或正被400整除的公元年。所以,閏年的判斷可以用一個邏輯運算式表示。
下面來判斷2012年是否為閏年:
複製代碼 代碼如下:
publicclassIsLeapYear{
publicstaticvoidmain(Stringargs[]){
intyear=2012;
booleanleapYear=(year%4==0&&year%100!=0||year%400==0);
if(leapYear){
System.out.println(year+"是閏年");
}else{
System.out.println(year+"不是閏年");
}
}
}
if-else語句的嵌套:
在if-else語句中的語句1或語句2中的語句也可以是if-else語句,這樣就形成了if-else語句的嵌套。其中最常用的是elseif語句嵌套的多選擇結構:
複製代碼 代碼如下:
if()語句1
elseif(邏輯運算式)語句2
........
elseif(邏輯運算式)語句n
else語句n+1
程式運行時會從上至下判斷邏輯條件,一旦某個邏輯條件滿足(即布林運算式的值為真),則運行相應的語句,然後就不再判斷其他的條件,直接轉到結構出口,運行if語句的後續語句。當然在這種多選擇的結構中,比較容易犯混淆if與else之間的搭配關係。java語言規定:else總是與離它最近的if配對。如果需要可以用花括弧{}來改變更配置對關係,其實我們經常這樣做。