------- android培訓(xùn)、java培訓(xùn)、期待與您交流! ----------
一、if/else構(gòu)成的判斷結(jié)構(gòu)
if(條件表達式){ 表達式1;}else{ 表達式2;}其含義為,如果if后邊的條件表達式為true,則執(zhí)行表達式1,否則執(zhí)行表達式2;
相當(dāng)于之前學(xué)到的三元運算符組成的判斷結(jié)構(gòu):
(條件表達式)?表達式1:表達式2
其含義為:當(dāng)括號內(nèi)的條件表達式邏輯值為true時,執(zhí)行表達式1,本次運算結(jié)束;
當(dāng)括號內(nèi)的條件表達式邏輯值為false時,執(zhí)行表達式2,本次運算結(jié)束。
注:三元運算符的好處是可以簡化if/else代碼,但也存在弊端,它僅僅是一個運算符,所以運算后必須要有一個具體的結(jié)果。
if(條件表達式1){ 表達式1;}else if(條件表達式2){ 表達式2;}else if(條件表達式3){ 表達式3;}……else{ 表達式N}這種結(jié)構(gòu),只要運算到某一條件表達式時,該條件表達式滿足,則結(jié)束整體的運算。
二、選擇結(jié)構(gòu)
switch選擇結(jié)構(gòu)
Switch(表達式)//表達式的數(shù)據(jù)類型只能為byte、short、int或char類型{ /* default: 執(zhí)行語句; break;當(dāng)default在選擇結(jié)果的最前端時,只有一下case跟的取值結(jié)果全部匹配,才會執(zhí)行default后邊的執(zhí)行語句,此時一定要書寫break,如果此處沒有break,則繼續(xù)向下執(zhí)行,但并不與case跟的取值進行匹配運算,直接執(zhí)行后面的每條執(zhí)行語句,直至遇到break或 } 才會停止。*/ case 取值1: 執(zhí)行語句1; break;case 取值2: 執(zhí)行語句2; break; ……default: 執(zhí)行語句;//只有當(dāng)以上答案全不對時,執(zhí)行default后邊跟的默認執(zhí)行語句 break;//此時break可有可無}注:swtich不能判斷結(jié)果為布爾型的條件。
當(dāng)對具體的數(shù)據(jù)(byte、short、int或char類型)進行判斷,且數(shù)值不多時,可以用swtich結(jié)構(gòu);
若當(dāng)值為區(qū)間或者布爾型時,可以用if結(jié)構(gòu),if結(jié)構(gòu)的適用范圍更廣。
三、循環(huán)結(jié)構(gòu)
(一)while 和do/while 的循環(huán)結(jié)構(gòu)
1)
while(條件表達式) { 循環(huán)體(執(zhí)行語句);//如果循環(huán)體中沒有控制條件則一直執(zhí)行循環(huán)體中的內(nèi)容。}2)
do { 循環(huán)體; } while(條件表達式)//無論條件是否滿足,至少執(zhí)行一次do后邊的循環(huán)體。區(qū)別:
A:while 先判斷條件,只有當(dāng)條件滿足時,才會執(zhí)行循環(huán)體的內(nèi)容。
B: do/while 先執(zhí)行一邊循環(huán)體的內(nèi)容,若條件滿足,則再繼續(xù)執(zhí)行循環(huán)。
(二) for循環(huán)
for(初始化表達式;循環(huán)條件表達式;循環(huán)后的操作表達式) { 執(zhí)行語句; }圖為for循環(huán)的過程示意圖
.jpg)

for循環(huán)結(jié)構(gòu)和while循環(huán)結(jié)構(gòu)的區(qū)別:
1) 若該變量僅限于作為循環(huán)內(nèi)的循環(huán)增量存在,用于控制循環(huán)次數(shù),則用for循環(huán)結(jié)構(gòu),語句簡單,可以優(yōu)化內(nèi)存。
2) for循環(huán)結(jié)構(gòu)中所定義的變量,作用于只限于該循環(huán)結(jié)構(gòu)內(nèi),循環(huán)執(zhí)行完畢后,該變量在內(nèi)存中被自動釋放,而while循環(huán)結(jié)構(gòu)中的變量通常是在循環(huán)結(jié)構(gòu)外定義的,循環(huán)結(jié)束后仍然存在
延伸:無限循環(huán)的最簡單表達方式
for(;;) { } | while(true) { } |
注意:循環(huán)中一定要明確哪些語句需要參與循環(huán),哪些不需要
循環(huán)中的累加思想:通過變量記錄住循環(huán)操作后的結(jié)果
1) 記錄每次變化的結(jié)果
2) 通過循環(huán)進行累加的動作
(三)拓展:在JDK1.5版本中增加了高級for循環(huán)的新特性
格式:
for(變量類型 變量 : 要被遍歷的集合或數(shù)組) { 循環(huán)體; }高級for循環(huán)的底層原理是Iterator迭代器,這種方式對集合進行遍歷,只能夠獲取元素而不能對元素所在集合進行操作。
與普通for循環(huán)的區(qū)別:高級for循環(huán)有一個局限性,就是一定要有被遍歷的目標,例如:
如果循環(huán)進行打印某條語句,可以通過普通for循環(huán)控制次數(shù),但卻不能使用高級for循環(huán)進行操作
for(int x=0;x<100;x++){ System.out.這種情況就不能夠使用高級for循環(huán),因為for循環(huán)只是在控制循環(huán)次數(shù),沒有要被遍歷的目標集合或數(shù)組;
建議在遍歷數(shù)組時還是使用傳統(tǒng)的for循環(huán), 因為傳統(tǒng)的for循環(huán)在遍歷時還可以根據(jù)獲取數(shù)組角標對數(shù)組進行操作。
四、在循環(huán)結(jié)構(gòu)中,我們通常會用到break(跳出)和continue(繼續(xù))的操作,下面來總結(jié)一下二者的使用方法:
break語句的作用
(1) 只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。(2) 當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用只是跳出該switch語句體。(3) 當(dāng)break出現(xiàn)在循環(huán)體中,但并不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體。
(4) 在循環(huán)結(jié)構(gòu)中,應(yīng)用break語句使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)。
continue語句作用
(1) continue語句的一般形式為:continue;
(2) 其作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。(3) 注意:執(zhí)行continue語句并沒有使整個循環(huán)終止。在while和do-while循環(huán)中,continue語句使得流程直接跳到循環(huán)控制條件的測試部分,然后決定循環(huán)是否繼續(xù)進行。
(4) 在for 循環(huán)中,遇到continue后,跳過循環(huán)體中余下的語句,而去對for語句中的“循環(huán)后的操作表達式”求值,然后進行“循環(huán)條件表達式”的條件測試,最后根據(jù)“循環(huán)條件表達式”的值來決定for循環(huán)是否執(zhí)行。在循環(huán)體內(nèi),不論continue是作為何種語句中的語句成分,都將按上述功能執(zhí)行,這點與break有所不同。
新聞熱點
疑難解答