Java中的流程控制語句

2021-09-18 03:50:46 字數 4320 閱讀 6126

流程控制語句,可以控制程式執行流程的語句

從上往下,依次執行

分類:if 語句,switch 語句

三種格式

//格式1

if(比較表示式)

執行流程:

1.先執行比較表示式的值,看其返回值是true還是false

2.如果是true,就執行語句體

3.如果是false,就不執行語句體

//格式2

if(比較表示式) else

執行流程

1.首先計算比較表示式的值,看其返回值是true還是false

2.如果是true,執行語句體1

3.如果是false,執行語句體2

//格式3

if(比較表示式1) else if (比較表示式2) else if (比較表示式3)

.......

else

執行流程

1.首先計算表示式1,看其返回值是true還是false

2.如果是true,執行語句體1,if語句結束

3.如果是false,就接著計算表示式2,看其返回值是true還是false

4.如果是true,執行語句體2,if語句結束

5.如果是false,同理執行後面

6.如果所有的比較表示式都是false,就執行語句體n

if語句格式2和三元運算子的區別三元運算子實現的,都可以採用if語句實現,反之不成立

什麼時候if語句實現不能用三元運算子改進呢?

格式:

switch (表示式)
switch中表示式可以接收的資料型別基本資料型別可以接收byte、short、char、int,引用資料型別可以接收列舉(jdk1.5版本以後)、string字串(jdk1.7版本開始)

執行流程:

先計算表示式的值,然後和case後面的值匹配,如果有就執行對應的語句,否則執行default控制的語句

注意事項:

case後面只能是常量,不能是變數,而且多個case後面的值不能出現相同的

default可以省略,但是不建議省略,因為它的作用是對不正確的情況給出提示。特殊情況可以省略:case就可以把值固定,例如選擇題的a、b、c、d選項

break最不能省略,不然會出現case穿透。特殊情況:default後面跟的那乙個break可以省略,但是最好不要省略

default可以在任何位置,是最後執行,但建議在最後,這樣程式清晰一點

switch的結束條件:a、遇到break就結束。b、執行到switch的右大括號就結束

case穿透

public static void main(string args) 

}

結果輸出:

使用場景:switch建議判斷固定值的時候用,if建議判斷區間或範圍的時候用

效率:

當分支較多時,用switch的效率是很高的。因為switch是隨機訪問的,就是確定了選擇值之後直接跳轉到那個特定的分支,但是if...else是遍歷所以得可能值,直到找到符合條件的分支。如此看來,switch的效率確實比ifelse要高的多。

switch...case占用較多的**空間,以空間換時間,因為它要生成跳表,特別是當case常量分布範圍很大但實際有效值又比較少的情況,switch...case的空間利用率將變得很低。

switch...case只能處理case為常量的情況,對非常量的情況是無能為力的。例如 if (a > 1 && a < 100),是無法使用switch...case來處理的。所以,switch只能是在常量選擇分支時比ifelse效率高,但是if...else能應用於更多的場合,if...else比較靈活。

分類:for語句、while語句、do...while語句

格式:

for(初始化表示式;條件表示式;迴圈後的操作表示式)
執行流程:執行初始化語句

執行判斷條件語句,看其返回值是true還是false。如果是true,就繼續執行,如果是false,就結束迴圈。

執行迴圈體語句

執行迴圈後的操作表示式

回到流程2繼續

格式:

while迴圈的基本格式:

while(判斷條件語句)

完整格式:

初始化語句;

while(判斷條件語句)

執行流程:執行初始化語句

執行判斷條件語句,看其返回值是true還是false。如果是true,就繼續執行,如果是false,就結束迴圈

執行迴圈體語句

執行控制條件語句

回到步驟2繼續

public static void main(string args) 

}

格式:

基本格式:

do while(判斷條件語句);

完整格式:

初始化語句;

do while (判斷條件語句);

執行流程:執行初始化語句

執行迴圈語句體

執行控制條件語句

執行判斷條件語句,看其返回值是true還是false。如果是true,就繼續執行,如果是false,就結束迴圈

回到步驟2繼續

public static void main(string args)  while(x <= 10);		        //判斷條件語句

}

do...while迴圈至少執行一次迴圈體

而for、while迴圈必須先判斷條件是否成立,然後決定是否執行迴圈體

​​​​​​​如果想在迴圈結束後,繼續使用控制條件的那個變數,用while迴圈

​​​​​​​如果想在迴圈結束後,不再使用控制條件的那個變數,用for迴圈

不知道使不使用控制條件的那個變數,用for迴圈,因為變數及早的從記憶體中消失,可以提高記憶體的使用效率

​​​​​​​兩種最簡單的死迴圈格式:while(true);for(;;);

分類:break;continue,return

break:終止,跳出,結束。在迴圈中表示跳出迴圈、結束迴圈

使用場景:只能在switch和迴圈中

舉例:

continue:繼續。在迴圈中表示結束本次迴圈,繼續下次迴圈

使用場景:只能在迴圈中

舉例:

標號:標記某個迴圈對其控制,組成規則是合法的識別符號。

使用場景:多層迴圈中,用於跳出指定迴圈,一般用來跳出外層迴圈

舉例:

public static void main(string args)}}

return:返回。它的作用不是結束迴圈,而是結束方法,如果有返回值就返回

return是結束方法

break是結束迴圈

continue是終止本次迴圈,繼續下次迴圈

JAVA流程控制語句

順序結構 自上而下地逐行執行 輸入資料 處理資料 輸出結果。選擇結構 根據邏輯判斷 的執行順序.if 條件表示式 else else class aaa else 迴圈結構 根據邏輯重複執行某個 塊 布林表示式,expresion1 為真,則 expresion2 被求值 expresion1為假,...

Java 流程控制語句

流程控制語句需要掌握的內容有if else 判斷題 switch 選擇題 while 迴圈語句 do while 迴圈語句 for迴圈 和foreach。還包括 continue break 關鍵字的使用。1 關於swiftch 後面小括號的值 只能 是 int byte char short st...

Java流程控制語句

if else if score 89 else 多重if if age 60 system.out.println 老年 else if age 40 system.out.println 中年 else if age 18 system.out.println 少年 else system.ou...