流程
使用不同關(guān)鍵字來控制程序的執(zhí)行流程
分類
順序結(jié)構(gòu)
程序從上到下逐行執(zhí)行
分支結(jié)構(gòu)
不同條件執(zhí)行不同代碼
if? else? switch
if 單條件
格式:if(布爾表達式){
語句體;
}
執(zhí)行流程
1.拿到布爾表達式判斷,如果布爾表達式的值為真,執(zhí)行{}中語句體
2.如果為假,什么也不執(zhí)行,程序跳過if結(jié)構(gòu),繼續(xù)向下執(zhí)行
格式:if(布爾表達式){
語句體;
};
else{
語句體
}
執(zhí)行步驟:
1,判斷布爾表達式是否為真2,如果為真,執(zhí)行i后{}中的語句體1;3,如果為假员魏,執(zhí)行else后{}中的語句體2;
if多條件情況
格式:
if(布爾表達式1){
語句體1;
}else if(布爾表達式2){
語句體2;
}else if(布爾表達式n){
語句體n;
}else{
語句體n+1;
}
執(zhí)行流程:
1 先判斷布爾表達式1 是否成立,如果成立執(zhí)行語句體1;
2 如果不成立,繼續(xù)判斷 布爾表達式2,如果布爾表達式2成立,執(zhí)行語句體2;
3? 如果不成立,繼續(xù)判斷 布爾表達式3,依次向下進行;
4 直到判斷成功
switch
轉(zhuǎn)換? 選擇
格式
switch(變量){
case 值1:語句體1;break;? //終止,終斷
case 值2:語句體2;break;?
case 值3:語句體3;break;?
...
default:語句體n+1;
}
變量 ->byte short char int
jdk1.5 枚舉
jdk1.7 字符串
執(zhí)行流程:
1 算出變量的值
2 拿到變量的值,與case項匹配,如果有匹配的選項,則執(zhí)行對應(yīng)的語句
3 遇到break停止
4 如果所有的case項都沒有匹配上,執(zhí)行default中的語句
在執(zhí)行case項時,遇到break才會停止,如果沒有遇到則一直進行,且不再判斷;直到遇到break才會停止
沒有break? 穿透[下墜]
循環(huán)結(jié)構(gòu)
反復(fù)執(zhí)行某一段代碼
for循環(huán)? while循環(huán)? do? while循環(huán)
for循環(huán)
格式:
for(①初始表達式;②布爾表達式;③更新表達式){
④循環(huán)體;
}
執(zhí)行流程:
1 初始表達式,對變量初始化
2 判斷布爾表達式是否為真
3 如果為真,執(zhí)行循環(huán)體,如果為假,退出for循環(huán)
4 執(zhí)行完循環(huán)體后,更新表達式
5 繼續(xù)判斷布爾表達式是否成立, 如果成立,執(zhí)行循環(huán)體,如果為假,退出for循環(huán)
6 執(zhí)行循環(huán)體以后,繼續(xù)執(zhí)行更新表達式,然后判斷布爾表達式是否為真
死循環(huán):
沒有循環(huán)結(jié)束的條件,或者循環(huán)結(jié)束的條件永遠不成立
在java中,使用break,終止循環(huán)
循環(huán)中的continue -> 繼續(xù):停止[跳過]本次循環(huán),繼續(xù)下次循環(huán)
一遇到continue,直接繼續(xù)下一次循環(huán),本行以后的代碼不執(zhí)行
窮舉法:暴力破解
while循環(huán):
格式: 初始化變量
while(布爾表達式){
循環(huán)體;->? 1循環(huán)邏輯 2 更新表達式
}
執(zhí)行流程
1 初始變量
2 判斷布爾表達式的值
3 如果值為真,執(zhí)行循環(huán)體
4 執(zhí)行完以后,在此判斷 布爾表達式是否成立
5 如果依然成立,繼續(xù)執(zhí)行循環(huán)體
6 重復(fù)4 5 兩步
7 如果布爾表達式的值為假,則退出while循環(huán)
for? while的區(qū)別:
兩種方式的區(qū)別:
1 定義初始化變量 for的初始化變量定義在小括號中,變量的生效范圍為其后{}的范圍
for的初始化變量定義在小括號中,變量的生效范圍為其后{}的范圍
while的初始化變量定義在循環(huán)的外邊,循環(huán)結(jié)束以后,變量仍然可以使用
2,應(yīng)用場景for一般用于我們知道要循環(huán)的次數(shù)while一般用于不知道循環(huán)的次數(shù)
do while? ?
格式:
初始表達式
do{
循環(huán)體; ->1 循環(huán)邏輯? 2 更新表達式
}while(布爾表達式);
執(zhí)行流程:
1 初始化變量
2 直接來執(zhí)行循環(huán)體
3 循環(huán)體執(zhí)行完畢,判斷布爾表達式? ,如果布爾表達式為真,繼續(xù)執(zhí)行循環(huán)體;如果為假,跳過循環(huán)體,結(jié)束
do while特點:
先不看條件,直接執(zhí)行一次,然后判斷條件
即使條件不成立,也可以執(zhí)行一次
while? 先判斷,在執(zhí)行
do? while? 先執(zhí)行,在判斷
while? ? 如果條件不成立,一次 也不執(zhí)行
do while? ? 無論條件是否成立|至少執(zhí)行一次
循環(huán)嵌套
再循環(huán)嵌套中還有嵌套,也即多層嵌套
執(zhí)行流程:
1初始化外層循環(huán)的變量
2判斷外層循環(huán)的布爾表達式是否成立?
3 如果外層循環(huán)的布爾表達式成立,進入到內(nèi)層循環(huán)
4 初始化內(nèi)層循環(huán)的變量
5 判斷內(nèi)層循環(huán)的布爾表達式是否成立6 如果內(nèi)層循環(huán)的布爾表達式成立則執(zhí)行循環(huán)體7 循環(huán)體執(zhí)行完以后叠聋,更新內(nèi)層循環(huán)的變量8 繼續(xù)判斷內(nèi)層循環(huán)的布爾表達式,如果成立,繼續(xù)執(zhí)行循環(huán)體
9,如果不成主撕阎,更新外層循環(huán)的變量10,繼續(xù)判斷外層的布爾布爾表達式,如果表達式成立,則進入到內(nèi)層循環(huán),依次重復(fù)4-9
\t tab 制表符 縮進? 轉(zhuǎn)義字符