黑馬程式員-------Java基礎學習(一)Java中基本的幾種程式流程式控制制

來源:互聯網
上載者:User

標籤:

 ------- android培訓、java培訓、期待與您交流! ----------

一、if/else構成的判斷結構

if(條件運算式){    運算式1;}else{     運算式2;}

 

 

其含義為,如果if後邊的條件運算式為true,則執行運算式1,否則執行運算式2;

相當於之前學到的三元運算子組成的判斷結構:

(條件運算式)?運算式1:運算式2

其含義為:當括弧內的條件運算式邏輯值為true時,執行運算式1,本次運算結束;

          當括弧內的條件運算式邏輯值為false時,執行運算式2,本次運算結束。

 

註:三元運算子的好處是可以簡化if/else代碼,但也存在弊端,它僅僅是一個運算子,所以運算後必須要有一個具體的結果。

 

if(條件運算式1){    運算式1;}else if(條件運算式2){     運算式2;}else if(條件運算式3){   運算式3;}……else{   運算式N}

 

這種結構,只要運算到某一條件運算式時,該條件運算式滿足,則結束整體的運算。

二、選擇結構

switch選擇結構

 Switch(運算式)//運算式的資料類型只能為byte、short、int或char類型{ /* default:   執行語句;   break;當default在選擇結果的最前端時,只有一下case跟的取值結果全部匹配,才會執行default後邊的執行語句,此時一定要書寫break,如果此處沒有break,則繼續向下執行,但並不與case跟的取值進行匹配運算,直接執行後面的每條執行語句,直至遇到break或 } 才會停止。*/  case 取值1:     執行語句1;     break;case 取值2:     執行語句2;     break; ……default:   執行語句;//只有當以上答案全不對時,執行default後邊跟的預設執行語句   break;//此時break可有可無}

 

註:swtich不能判斷結果為布爾型的條件。

當對具體的資料(byte、short、int或char類型)進行判斷,且數值不多時,可以用swtich結構;

若當值為區間或者布爾型時,可以用if結構,if結構的適用範圍更廣。

 

三、迴圈結構

(一)while 和do/while 的迴圈結構

1) 

while(條件運算式) {        迴圈體(執行語句);//如果迴圈體中沒有控制條件則一直執行迴圈體中的內容。}

 

2) 

do {      迴圈體; }   while(條件運算式)//無論條件是否滿足,至少執行一次do後邊的迴圈體。

 

區別:

A:while 先判斷條件,只有當條件滿足時,才會執行迴圈體的內容。

B: do/while 先執行一邊迴圈體的內容,若條件滿足,則再繼續執行迴圈。

 

(二) for迴圈

 

 

for(初始設定式;迴圈條件運算式;迴圈後的動作表達式)         {                   執行語句;         }

圖為for迴圈的過程

 

for迴圈結構和while迴圈結構的區別:

1)  若該變數僅限於作為迴圈內的迴圈增量存在,用於控制迴圈次數,則用for迴圈結構,語句簡單,可以最佳化記憶體。

2)  for迴圈結構中所定義的變數,作用於只限於該迴圈結構內,迴圈執行完畢後,該變數在記憶體中被自動釋放,而while迴圈結構中的變數通常是在迴圈結構外定義的,迴圈結束後仍然存在

延伸:無限迴圈的最簡單表達方式

 

for(;;)

{

 

}

 

while(true)

{

 

}

注意:迴圈中一定要明確哪些語句需要參與迴圈,哪些不需要

迴圈中的累加思想:通過變數記錄住迴圈操作後的結果

1)  記錄每次變化的結果

2)  通過迴圈進行累加的動作

 

(三)拓展:在JDK1.5版本中增加了進階for迴圈的新特性

格式:

for(變數類型 變數 : 要被遍曆的集合或數組)        {                   迴圈體;         }

 

進階for迴圈的底層原理是Iterator迭代器,這種方式對集合進行遍曆,只能夠擷取元素而不能對元素所在集合進行操作。

與普通for迴圈的區別:進階for迴圈有一個局限性,就是一定要有被遍曆的目標,例如:

如果迴圈進行列印某條語句,可以通過普通for迴圈控制次數,但卻不能使用進階for迴圈進行操作

for(int x=0;x<100;x++){         System.out.println("hello world");}

這種情況就不能夠使用進階for迴圈,因為for迴圈只是在控制迴圈次數,沒有要被遍曆的目的地組合或數組;

 

建議在遍曆數組時還是使用傳統的for迴圈, 因為傳統的for迴圈在遍曆時還可以根據擷取數組角標對數組進行操作。

 

四、在迴圈結構中,我們通常會用到break(跳出)和continue(繼續)的操作,下面來總結一下二者的使用方法:

break語句的作用

(1) 只能在迴圈體內和switch語句體內使用break語句。
(2) 當break出現在迴圈體中的switch語句體內時,其作用只是跳出該switch語句體。
(3) 當break出現在迴圈體中,但並不在switch語句體內時,則在執行break後,跳出本層迴圈體。

(4) 在迴圈結構中,應用break語句使流程跳出本層迴圈體,從而提前結束本層迴圈。

continue語句作用

(1) continue語句的一般形式為:continue;

(2) 其作用是結束本次迴圈,即跳過本次迴圈體中餘下尚未執行的語句,接著再一次進行迴圈的條件判定。
(3) 注意:執行continue語句並沒有使整個迴圈終止。在while和do-while迴圈中,continue語句使得流程直接跳到迴圈控制條件的測試部分,然後決定迴圈是否繼續進行。

(4) 在for 迴圈中,遇到continue後,跳過迴圈體中餘下的語句,而去對for語句中的“迴圈後的動作表達式”求值,然後進行“迴圈條件運算式”的條件測試,最後根據“迴圈條件運算式”的值來決定for迴圈是否執行。在迴圈體內,不論continue是作為何種語句中的語句成分,都將按上述功能執行,這點與break有所不同。

 

黑馬程式員-------Java基礎學習(一)Java中基本的幾種程式流程式控制制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.