Java常用流程控制語句實現原理解析
一、判斷語句
最常用的順序結構只能順序執行,並不能進行判斷和選擇。於是便有了下面兩種分支結構
- if語句
- switch語句
1. if語句
一個if語句包含一個布林表示式和一條或多條語句。
1.1 判斷語句1——if
if語句的第一種格式
if(關係表示式){ 語句體; }
執行流程
- 首先判斷關係表示式結果是true還是false
- 如果是true就執行語句體
- 如果是false就不執行語句體
1.2 判斷語句2——if...else
if語句的第二種格式:if...else
if(關係表示式) { 語句體1; }else { 語句體2; }
執行流程
- 首先判斷關係表示式結果是true還是false
- 如果是true就執行語句體1
- 如果是false就不執行語句體 2
1.3 判斷語句3——if...else if...else
if語句的第三種格式:if...else if...else
if (判斷條件1) { 執行語句1; } else if (判斷條件2) { 執行語句2; } ... }else if (判斷條件n) { 執行語句n; } else { 執行語句n+1; }
執行流程
- 首先判斷關係表示式1結果是true還是false
- 如果是true就執行語句體1
- 如果是false就繼續判斷關係表示式2看其結果是true還是false
- 如果是true就執行語句體2
- 如果是false就繼續判斷關係表達3,看其結果是true還是false
- ......
- 如果沒有任何關係表示式為true,就執行語句體n+1
注意:有多個if...else只執行一個
二、選擇語句
1. 選擇語句——switch
Switch語句格式:
switch(表示式) { case 常量值1: 語句體1; break; case 常量值2: 語句體2; break; ... default: 語句體n+1; break; }
執行流程
- 首先計算出表示式的值
- 其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break結束
- 如果所有的case都和表示式的值不匹配,就會執行default語句體部分,然後程式結束
注意事項:
- 多個case後面的數值不可以重複
- switch後面小括號當中只能說下列資料型別:
- 基本資料型別:bytr/short/char/int
- 引用資料型別:String字串、eumn列舉
- switch語句格式很靈活:
- 前後順序可以顛倒
- break語句可以省略
2. case的穿透性
在switch語句中,如果case的後面不寫break,將出現穿透現象。也就是不會繼續判斷下一個case的值,而是直接向後執行,直到遇到break,或者整體switch結束
由於case存在穿透性,因此我們在編寫switch語句時,必須注意要寫上break
三、迴圈結構
順序結構的程式語句只能被執行一次。如果想要同樣的操作多次執行,,就需要使用到迴圈結構。
常用的迴圈結構有三種:
- for迴圈
- while迴圈
- do…while迴圈
迴圈結構由如下四部分組成:
- 初始化語句:在迴圈最開始執行,而且執行一次
- 條件判斷:如果成立,則迴圈繼續;否則退出迴圈
- 迴圈體:指的是重複要做的事情,由若干行語句組成
- 步進語句:每次迴圈之後都要進行的掃尾工作
1. for迴圈
for 迴圈語句是支援迭代的一種通用結構,利用每次迭代之後更新的計數器或類似的變數來控制迭代次數。for 迴圈語句是 while 迴圈的一種簡化形式,執行的次數在執行前就已經確定。
語法格式如下:
for(初始化; 布林表示式; 步進語句) { 迴圈體 }
2. while迴圈
迴圈語句標準格式
while (條件判斷){ 迴圈體 }
迴圈語句擴充套件格式:
初始化表示式 while(布林表示式){ 迴圈體 步進語句 }
3. do…while迴圈
對於while語句而言,如果不滿足條件,則不能進入迴圈。但有時候我們需要不滿足條件,也至少執行一次。do…while迴圈和while迴圈相似,不同的是,do…while迴圈至少會執行一次。
do…while迴圈的標準格式:
do { 迴圈體 }while(條件判斷);
do…while迴圈的擴充套件格式:
初始化語句 do{ 迴圈體 步進語句 }while(條件判斷);
4. 三種迴圈的區別
如果條件判斷沒有滿足過,那麼for和while迴圈將會執行0次,do...while迴圈會至少執行一次
for迴圈的變數在小括號內定義,只有在迴圈內部才可以使用;while和do…while迴圈的初始化語句在外面,所以跳出迴圈後還可以繼續使用
在已知迴圈次數的時候使用推薦使用for,迴圈次數未知的時推薦使用while
5. 跳出語句
berak語句:主要用在迴圈語句或者switch語句中,用來跳出整個語句塊打斷這個迴圈。它能跳出最裡層的迴圈,並且繼續執行該迴圈下面的語句。
continue語句:適用於任何迴圈控制結構中。作用是結束本次迴圈,繼續下一次的迴圈 。
- 在for迴圈中,continue語句使程式立即跳轉到步進語句
- 在while或者do…while迴圈中,程式立即跳轉到布林表示式的判斷語句
6. 死迴圈
死迴圈就是迴圈的條件永遠為true,是永不結束的迴圈 。標準格式為:
while(true){ 迴圈體 }
7. 巢狀迴圈
巢狀迴圈是指一個迴圈的迴圈體是另一個迴圈。如for迴圈裡面還有一個for迴圈,這就是巢狀迴圈。總共的迴圈次數=外迴圈次數*內迴圈次數
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。