流程控制語句:可以控制程序的執行流程(從上到下,依次執行)
流程控制語句的分類:順序結構(從上到下,依次執行)、選擇結構、循環結構
選擇結構 i f 語句
if語句的格式1:
if (比較表達式 ) {
語句體; ? ? ? ? ? ? ?}
if語句執行流程:先計算比較表達式的值,看返回的是true還是false。? ?如果是true,就執行語句體。? 如果是false,就不執行語句體
選擇結構 i f 語句:if語句的格式2:
* if (比較表達式 ) {
語句體1; ? ? ???}else {? ? ? ?語句體2;? ? ? ?}
if 語句的格式2:執行流程:
*? ? 首先計算比較表達式中的值,看返回值是true還是false
*? ? 如果是true,就執行語句體1
*? ? 如果是false,就執行語句體2
選擇結構 i f 語句:if語句的格式2:
* if語句結構3:
*? ? if(比較關系式1){
*? ? ? ? 語句體1;
*? ? }else if(比較表達式2){
*? ? ? ? 語句體2;
*? ? }else if (比較表達式3){
*? ? ? ? 語句體3;
*? ? }.....
*? ? else{
*? ? ? ? 語句體n+1;
*? ? }
選擇結構switch語句
?switch語句格式
*? switch(表達式){
*? ? ? case值1;
*? ? ? ? 語句體1;
*? ? ? ? break;
*? ? ? ? case值2;
*? ? ? ? 語句體2;
*? ? ? ? break;
*? ? ? ? .......
*? ? ? ? default:
*? ? ? ? 語句體n+1;
*? ? ? ? break;
*? }
執行流程:先計算表達式的值,然后和case后面的匹配,如果有就執行對應的語句,否則執行default控制的語句
選擇結構switch語句:* switch語句的表達式可以接收類型:基本數據類型中的byte、short、char、int(只要是不大于int類型的都可以接收)。引用數據類型可以接收枚舉(JDK1.5)String字符串(JDK1.7)
注意事項:
case后面只能是常量,不能是變量,而且,多個case后面的值不能出現相同的。
break最后一個可以省略,其它的最好不要省略,因為會出現case穿透,所以最好都不要省略
default可以省略,但是不建議省略,因為它的作用是對不正確的情況給出提示
default可以放在任意位置,但建議放在最后
switch結束條件:遇到break就結束,執行到switch的右大括號就結束
總結:switch語句和if語句各自使用場景
? ? ? ?switch建議判斷固定值的時候使用(如 判斷星期幾)
? ? ? ?if語句建議判斷區間或范圍的時候用
循環結構的分類:for 、while、do......while
循環結構for語句
循環結構for語句的格式:
for(初始化表達式;條件表達式;循環后的操作表達式) {
循環體;
}
for語句執行流程:
*執行初始化語句
* 執行判斷條件語句,看其返回值是true還是false
*如果是true,就繼續執行
*如果是false,就結束循環
* 執行循環體語句;
* 執行循環后的操作表達式
循環結構while語句
? while語句結構
初始化語句;
while(判斷條件語句) {
循環體語句;
控制條件語句;
}
B:執行流程:
* a:執行初始化語句
* b:執行判斷條件語句,看其返回值是true還是false
* ? ? 如果是true,就繼續執行
* ? ? 如果是false,就結束循環
* c:執行循環體語句;
* d:執行控制條件語句
* e:回到B繼續。
循環結構do.....while語句
do.....while語句格式:
初始化語句;
do {
循環體語句;
控制條件語句;
}while(判斷條件語句);
do.....while語句執行流程:
* a:執行初始化語句
* b:執行循環體語句;
* c:執行控制條件語句
* d:執行判斷條件語句,看其返回值是true還是false
*如果是true,就繼續執行
*如果是false,就結束循環
* e:回到b繼續。