1. 程式人生 > >2.0流程控制

2.0流程控制

計算表達式 else if 進行 常見 參數 方式 字符 相同 發生

  流程控制對於任何一門語言來說都至關重要,它提供了控制程序步驟的基本手段。如果沒有流程控制,整個程序將安卓線性的順序來執行,不能根據用戶的輸入決定執行的序列。

復合語句

  (概念)同C語言或其他語言相同,Java語言的復合語句是以整個塊區為單位的語句,所以又稱塊語句。復合語句由開括號“{”和閉括號“}”開始及結束。(舉例)在定義一個類或方法時,類體就是以“{}”作為開始和結束的標記,方法體同樣是以“{}”作為標記。對於復合語句中的每個語句都是從上到下地執行。復合語句以整個塊為單位,可以用在任何一個單獨語句可以用到的地方,並且在復合語句中還可以嵌套復合語句。

  技術分享

  在主方法中定義復合語句塊,其中包含另一個復合語句塊。

  在使用復合語句時要註意,復合語句為局部變量創建了一個作用域,該作用域為程序的一部分,在該作用域中某個變量被創建並能夠被使用。如果在某個變量的作用域外使用該變量,則會發生錯誤。

條件語句

  條件語句可根據不同的條件執行不同的語句。條件語句包括if條件語句與switch多分支語句。

  if條件語句

  if條件語句用於告訴程序某個條件成立的情況下執行某段程序,而在另一種情況下執行另外的語句。

  使用if條件語句,可選擇是否要執行緊跟在條件之後的那個語句。關鍵字if之後是作為條件的“布爾表達式”,如果該表達式返回的結果為true,則執行其後的語句;若為false,則不執行if條件之後的語句。if條件語句可分為簡單的if語句、if……else語句和if……else if 多分支語句。

  1)簡單的if條件語句

  語法格式:if(布爾表達式){

        語句序列

        }

  布爾表達式:必要參數,表示它最後返回的結果必須是一個布爾值。它可以使一個單純的布爾變量或者常量,或者使用關系或布爾運算符的表達式。

  語句序列:可選參數。可以使一條或多條語句,當表達式的值為true時執行這些語句。如語句序列中僅有一條語句,則可以省略條件語句中的大括號。

  註意:雖然if和else語句後面的復合語句塊只有一條語句,省略“{}”並無語法錯誤,但為了增強程序的可讀性,最好不要省略。

  技術分享

  2)if……else語句

  if……else語句是條件語句中最常用的一種形式,它會針對某種條件有選擇地作出處理。表現為“如果滿足某種條件,就進行某種處理,否則進行另外一種處理”。語法格式:

  if(表達式){

    若幹語句

  }

  else{

    若幹語句

  }

  if後面()內的表達式的值必須是Boolean型的。如果表達式的值為true,則執行緊跟if語句的符合語句;如果表達式的值為false,則執行else後面的復合語句。if……else的執行過程如圖:

  技術分享

  

  同簡單的if條件語句一樣,如果if……else語句的語句序列中只有一條語句(不包括註釋),則可以省略該語句序列外面的大括號。有時為了編程的需要,else或if後面的大括號裏可以沒有語句。

  3)if……else if 多分支語句

  if……else if多分支語句用於針對某一事件的多種情況進行處理。通常表現為“如果滿足某種條件”,就進行某種處理,否則,如果滿足另一種則執行另一種處理。語法格式:

  if(條件表達式1){

  語句序列1

}else if(條件表達式2){

  語句序列2

}

……

else if(條件表達式n){

  語句序列n

}

  條件表達式1~條件表達式n:必要參數。可以由多個表達式組成,但最後返回的結果一定要為Boolean類型。語句序列:可以使一條或多條語句,當表達式1的值為true時,執行語句序列1;當條件表達式2的值為true時,執行語句序列2,以此類推。當省略任意一組語句序列時,可以保留其外面的大括號,也可以將大括號替換為“;”。

  技術分享

  註意:if語句只執行條件為真的命令語句,其他語句都不會執行。

  switch多分支語句

  在編程中一個常見的問題就是檢測一個變量是否符合某個條件,如果不匹配,再用另一個值來檢測它,依次類推。當然,這種問題使用if條件語句也可以完成。

  有時使用if語句會顯得比較笨重,程序員需要測試不同的值來給出輸出語句。在Java語言中,可以用switch語句將動作組織起來,就能以一個較簡單明了的方式來實現“多選一”的選擇。語法格式:

  switch(表達式)

{case 常量值1;

  語句塊1;

  [break;]

  ……

 case 常量值n;

  語句塊n

  [break;]

 default;

  語句塊n+1;

  [break;]

}

  switch語句中表達式的值必須是整型或字符型,常量值1~常量值n必須也是整型或字符型。switch語句首先計算表達式的值,如果表達式的值和某個case後面變量值相同,則執行該case語句後的若幹個語句直到break語句為止。如果此時該case語句沒有break語句,將繼續執行後面case中的若幹個語句,直到遇到break語句為止。若沒有一個常量的值與表達式的值相同,則執行default後面的語句。default語句為可選的,如果它不存在,而且switch語句中表達式的值不與任何case的常量值相同,switch則不作任何處理。

  註意:同一個switch語句,case的常量值必須互不相同。

  switch語句的執行過程:

  技術分享

  註意:在switch語句中,case語句後常量表達式的值可以為整數,但絕不可以為實數。例如下面的代碼時不合法的case 1.1;常量表達式的值可以是字符,但一定不可以是字符串。例如下面的代碼時非法的。case “ok”;

2.0流程控制