Java編程中的前提斷定之if語句的用法詳解。本站提示廣大學習愛好者:(Java編程中的前提斷定之if語句的用法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java編程中的前提斷定之if語句的用法詳解正文
if語句應用布爾表達式或布爾值作為分支前提來停止分支掌握,個中if語句有以下三種情勢:
第一種情勢:
if ( logic expression ) { statements… }
第二種情勢:
if (logic expression) { statements… } else { statements… }
第三種情勢:
if (logic expression) { statements… } else if(logic expression) { statements… } …//可以有零個或多個else if語句 else//最初的else語句也能夠省略 { statement }
在下面if說話的三種情勢中,放在if以後的括號裡的只能是一個邏輯表達式,即這個表達式的前往值只能是true或false.第二種情況和第三種情況是相通的,假如第三種情勢中else if塊不湧現,則釀成了第二種情勢。
下面的前提語句中,if(logic expression)、else if(logic expression)和else後花括號括起來多行代碼被稱為代碼塊,一個代碼塊平日被當做一個全體來履行(除非運轉進程中碰到return、break、continue等症結字,或許碰到了異常),是以這個代碼塊也被稱為前提履行體。例如以下法式:
法式清單:codes/04/4-2/TestIf.java
public class TestIf { public static void main(String[] args) { int age = 30; if (age > 20) //只要當age > 20時,上面花括號括起來的語句塊才會履行 //花括號括起來的語句是一個全體,要末一路履行,要末一路不會履行 { System.out.println("年紀曾經年夜於20歲了"); System.out.println("20歲以上的人應當學會承當義務…"); } } }
是以,假如if(logic expression)、else if(logic expression)和else後的語句塊只要一行語句時,則可以省略花括號,由於單行語句自己就是一個全體,不必花括號來把它們界說成一個全體。上面代碼完整可以正常履行(法式清單同上):
//界說變量a ,並為其賦值 int a = 5; if (a > 4) //假如a>4,履行上面的履行體,只要一行代碼作為代碼塊 System.out.println("a年夜於4"); else //不然,履行上面的履行體,只要一行代碼作為代碼塊 System.out.println("a不年夜於4");
平日,我們建議不要省略if、else、else if後履行塊的花括號,即便前提履行體只要一行代碼,由於保存花括號會有更好的可讀性,並且保存花括號會削減產生毛病的能夠,例如以下代碼,則弗成正常履行:
//界說變量b ,並為其賦值 int b = 5; if (b > 4) //假如b>4,履行上面的履行體,只要一行代碼作為代碼塊 System.out.println("b年夜於4"); else //不然,履行上面的履行體 b--; //關於上面代碼而言,它曾經不再是前提履行體的一部門,是以總會履行 System.out.println("b不年夜於4");
下面代碼中以粗體字標識的代碼行:System.out.println("b不年夜於4");,將老是會履行,由於這行代碼其實不屬於else後的前提履行體,else後的前提履行體就是b--;這行代碼。
if、else、else if後前提履行體要末是一個花括號擴起來的語句塊,則這個語句塊全體作為前提履行體;要末是以分號為停止符的一行語句,乃至能夠是一個空語句(空語句是一個分號)。
假如if塊後有多條語句作為前提履行體,假如省略了這個前提履行體的花括號,則會惹起編譯毛病,看上面代碼(法式清單同上):
//界說變量c ,並為其賦值 int c = 5; if (c > 4) //假如c>4,履行上面的履行體,將只要c--;一行代碼為前提履行體 c--; //上面是一行通俗代碼,不屬於前提履行體 System.out.println("c年夜於4"); //此處的else將沒有if語句,是以編譯失足 else //不然,履行上面的履行體,只要一行代碼作為代碼塊 System.out.println("c不年夜於4");
在下面代碼中,由於if後的前提履行體省略了花括號,則體系只把c--;一行代碼作為前提履行體,當c-;語句停止後,if語句也就停止了。前面的System.out.println("c年夜於4");代碼曾經是一行通俗代碼了,不再屬於前提履行體,從而招致else語句沒有if語句,從而惹起編譯毛病。