1. 程式人生 > >java複習第四天 switch 迴圈 跳轉控制語句

java複習第四天 switch 迴圈 跳轉控制語句

1.switch語句
格式:
switch(表示式){
case 常量值1:
語句體1;
break;
case 常量值2:
語句體2;
break;
case 常量值3:
語句體3;
break;
case 常量值n:
語句體n;
break;
default:
預設語句體;
break;
}
格式解析:
表示式:可以取byte,short,int,char,JDK1.7之後可以是String
case:是拿著表示式的值和常量值進行匹配,一旦匹配成功就會執行對應的語句體
常量值:是和表示式的值進行匹配的
語句體:重複要執行的程式碼,可以是多條
break:結束switch語句
default:當所有的case都不匹配時,就執行預設語句體,相當於if語句中的else語句
執行流程:
首先計算出表示式的值,然後和case後面的常量值進行匹配,一旦匹配成功就會執行對應的語句體;
如果都不匹配成功就會執行default裡面的語句體。如果執行語句體過程中沒有遇見break會緊接著執行下一個case裡面的語句體
注意事項:
case後面的值只能是常量且不能重複
break可以省略嗎?
可以,省略之後會將緊接著底下的case裡面的語句執行
default可以省略嗎?
可以,省略之後switch就沒有預設處理方案了
default和case的位置必須有序嗎?
不用有序,可以隨意的擺放

if語句和switch語句的各自使用場景:
if語句:
針對結果是boolean型別的,只能用if語句
針對範圍判斷的型別,推薦使用if語句
針對常量值進行匹配的,不建議使用if語句
switch語句:
針對常量值進行匹配的,建議使用switch
針對範圍判斷的型別,不建議使用switch
2.迴圈結構語句
迴圈結構:當某一條件成立時,可以反覆執行某一段程式碼,直到在合適的時候結束這個迴圈
迴圈結構四大組成部分:
初始化語句:只執行一次,一般用於初始化一些變數
判斷條件語句:判斷迴圈是否可以繼續,如果條件是true就繼續,如果條件是false就結束迴圈
迴圈體語句:就是我們要反覆執行的程式碼
控制條件語句:讓迴圈在合適的時候結束

for語句:
格式:
for(初始化語句;判斷條件語句;控制條件語句){
迴圈體語句;
}
執行流程:
A:執行初始化語句
B:執行判斷條件語句
如果結果是true就繼續C步驟
如果結果是false就結束語句
C:執行迴圈體語句
D:執行控制條件語句
E:回到B步驟
注意事項:
判斷條件語句的結果必須是boolean型別
for語句預設控制一條迴圈體語句,如果想要控制多條,大括號必須加上

while語句:
格式:
初始化語句;
while(判斷條件語句){
迴圈體語句;
控制條件語句;
}
執行流程:
A:執行初始化語句
B:執行判斷條件語句
如果值是true就繼續C步驟
如果值是false就結束語句
C:執行迴圈體語句
D:執行控制條件語句
E:回到B步驟

for語句和while語句的區別:當語句結束之後,判斷條件語句的那個變數,在for語句結束之後是不能訪問的,在while語句結束之後
還可以繼續訪問。如果需要繼續訪問,就用while,如果不用訪問,就用for。
for語句:更適合做固定範圍內的迴圈
while語句:更適合求未知數

do…while語句:
格式:
初始化語句;
do{
迴圈體語句;
控制條件語句:
}while(判斷條件語句);
執行流程:
A:執行初始化語句
B:執行迴圈體語句
C:執行控制條件語句
D:執行判斷條件語句
如果值是true就回到B步驟
如果值是false就結束語句

執行迴圈體語句的條件不同:
for和while必須當判斷條件是true的時候才會執行迴圈體語句
do…while至少會執行一次迴圈體語句
死迴圈寫法:
while(true){反覆需要執行的程式碼}
for(;;){反覆需要執行的程式碼}
3.跳轉控制語句
概述:可以控制在迴圈中,在合適的位置結束當前的迴圈

break:中斷switch以及所有的迴圈語句
continue:結束本次迴圈,直接開始下次迴圈
return:結束當前的方法

面試題:.籃球從5米高的地方掉下來,每次彈起的高度是原來的30%,經過幾次彈起,籃球的高度是0.1米

public class Test20 {

public static void main(String[] args) {
int height =500;
int a =0;
while(true){
a++;
height =(int) (height *0.3);
if(height<10){
break;
}

}
System.out.println(a);
}
}