由于程序都是自上向下的順序執(zhí)行的,所以通過流程控制語句可以改變程序執(zhí)行的順序,或者反復的執(zhí)行某一段的程序。
語句的分類
-
條件判斷語句
-
條件分支語句
-
循環(huán)語句
條件判斷語句
條件判斷語句也稱為if語句
語法一:
if(條件表達式){
語句...
}
執(zhí)行流程:if語句執(zhí)行時,會先對條件表達式進行求值判斷,如果值為true,則執(zhí)行if后的語句,如果值為false,則不執(zhí)行。
語法二:
if(條件表達式){
語句...
}else{
語句...
}
執(zhí)行流程:if...else語句執(zhí)行時,會對條件表達式進行求值判斷,如果值為true,則執(zhí)行if后的語句,如果值為false,則執(zhí)行else后的語句
語法三:
if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else{
語句...
}
執(zhí)行流程:if...else if...else語句執(zhí)行時,會自上至下依次對條件表達式進行求值判斷,
如果判斷結(jié)果為true,則執(zhí)行當前if后的語句,執(zhí)行完成后語句結(jié)束。
如果判斷結(jié)果為false,則繼續(xù)向下判斷,直到找到為true的為止。
如果所有的條件表達式都是false,則執(zhí)行else后的語句
條件分支語句
使用switch語句
語法:
switch(條件表達式){
case 表達式:
語句...
break;
case 表達式:
語句...
break;
case 表達式:
語句...
break;
default:
語句...
break;
}
執(zhí)行流程:switch...case...語句在執(zhí)行時,會依次將case后的表達式的值和switch后的表達式的值進行全等比較,
如果比較結(jié)果為false,則繼續(xù)向下比較。如果比較結(jié)果為true,則從當前case處開始向下執(zhí)行代碼。
如果所有的case判斷結(jié)果都為false,則從default處開始執(zhí)行代碼。
循環(huán)語句
通過循環(huán)語句可以反復執(zhí)行某些語句多次
while循環(huán)的語法:
while(條件表達式){
語句...
}
執(zhí)行流程:while語句在執(zhí)行時,會先對條件表達式進行求值判斷,
如果判斷結(jié)果為false,則終止循環(huán)
如果判斷結(jié)果為true,則執(zhí)行循環(huán)體
循環(huán)體執(zhí)行完畢,繼續(xù)對條件表達式進行求值判斷,依此類推
do...while循環(huán)的語法:
do{
語句...
}while(條件表達式)
執(zhí)行流程:do...while在執(zhí)行時,會先執(zhí)行do后的循環(huán)體,然后在對條件表達式進行判斷,
如果判斷判斷結(jié)果為false,則終止循環(huán)。
如果判斷結(jié)果為true,則繼續(xù)執(zhí)行循環(huán)體,依此類推
和while的區(qū)別:while:先判斷后執(zhí)行
do...while: 先執(zhí)行后判斷
do...while可以確保循環(huán)體至少執(zhí)行一次。
for循環(huán)的語法:
for(①初始化表達式 ; ②條件表達式 ; ④更新表達式){
③語句...
}
執(zhí)行流程:首先執(zhí)行①初始化表達式,初始化一個變量,
然后對②條件表達式進行求值判斷,如果為false則終止循環(huán)
如果判斷結(jié)果為true,則執(zhí)行③循環(huán)體
循環(huán)體執(zhí)行完畢,執(zhí)行④更新表達式,對變量進行更新。
更新表達式執(zhí)行完畢重復②
死循環(huán)
while(true){
}
for(;;){
}
|