1.流程控制語句
①順序結(jié)構(gòu)
是程序中最簡單最基本的流程控制,按照代碼的先后順序依次執(zhí)行凰慈,程序中的多數(shù)代碼就是如此引瀑。簡言之:先寫先行。
②選擇結(jié)構(gòu)
也被稱之為分支結(jié)構(gòu)州藕。代碼要執(zhí)行具體的邏輯運算進行判斷万矾。邏輯運算的結(jié)果有兩個所以能產(chǎn)生選擇,按照選擇的不同我們將執(zhí)行不同的代碼慎框。
因此在java中專門提供了2種選擇結(jié)構(gòu)語句:if語句和switch語句。
(1)if語句
if語句有三種格式
1°格式:
if(關(guān)系表達式){
? ? 語句體;
}
執(zhí)行流程描述:首先判斷關(guān)系表達式的結(jié)果是true還是false后添,如果是ture則執(zhí)行語句體笨枯,如果是false就不執(zhí)行。
注意事項:
A.關(guān)系表達式無論是簡單還是復(fù)雜其結(jié)果必須是boolean類型遇西。
B.if語句控制的語句體如果是一條語句那么大括號是可以省略的馅精。如果是多條語句體就不能夠省略。//此處建議永遠(yuǎn)也不要省略(這里提到只是對一些刁鉆的找錯試題進行掃盲)
C.一般來說有左大括號就沒有分號粱檀,有分號就沒有左大括號洲敢。例如:
上面那種情況是不會報錯的。原因茄蚯?
2°格式:
if(關(guān)系表達式){
? ? ? ? 語句體1;
}else {
? ? ? ? 語句體2;
}
執(zhí)行流程描述:首先判斷表達式的結(jié)果是true還是false压彭,如果是ture則執(zhí)行語句體1,如果是false則執(zhí)行語句體2渗常。
三目運算符語句都可以改為if語句壮不,但是if語句卻不一定能改成三目運算符語句。(語句體中是賦值操作就可以改皱碘,但如果直接是輸出語句就不能改動)(因為三目運算符運算完畢應(yīng)當(dāng)是一個結(jié)果而不是一個輸出)询一。
3°格式:
if(關(guān)系表達式1){
? ? ? ? 語句體1;
}else if(關(guān)系表達式2){
? ? ? ? 語句體2;
}
...
else{
? ? ? ? 語句體n+1 ;
}
執(zhí)行流程描述:首先判斷關(guān)系表達式1的結(jié)果是true還是false,如果是true則執(zhí)行語句體1癌椿,如果是false則判斷關(guān)系表達式2的結(jié)果是true還是false健蕊,如果是true則執(zhí)行語句體2,如果是false則……如果沒有任何關(guān)系表達式為true就執(zhí)行語句體n踢俄。
***注意:在做一個程序的基本測試的時候一定要考慮幾個問題
正確數(shù)據(jù)缩功,錯誤數(shù)據(jù)和邊界數(shù)據(jù)。
注意:if語句的語句體部分也可以是if語句(嵌套都办。)
(2)switch語句
格式:
switch(表達式){
? ? case 值1:
? ? ? ? ? ? 語句體1;
? ? ? ? ? ? break;
? ? case 值2:
? ? ? ? ? ? 語句體2;
? ? ? ? ? ? break;
……
? ? default:
? ? ? ? ? ? 語句體n+1;
? ? ? ? ? ? break;
}
表達式的取值:byte,short,int,char(最早的版本)
? ? ? ? ? ? ? ? ? ? ? ? ?JDK5之后可以是枚舉
? ? ? ? ? ? ? ? ? ? ? ? ?JDK7之后可以是字符串
case后跟的是要跟表達式進行比較的值掂之。
語句體是要執(zhí)行的代碼可以是1條或者多條抗俄。
break是控制“結(jié)束”∈澜ⅲ可以中斷switch語句动雹。
default:當(dāng)所有的值都與表達式不匹配時就執(zhí)行default控制的語句。//相當(dāng)于if語句的else
執(zhí)行流程描述:
首先計算出表達式的值跟压,與case依次比較胰蝠,一旦有了對應(yīng)的值就會執(zhí)行該case所控制的對應(yīng)的語句體,執(zhí)行過程中遇到break就結(jié)束震蒋,如果到最后所有的case數(shù)據(jù)都與表達式不匹配那么就執(zhí)行default所控制的語句體茸塞。
switch語句使用時的注意事項:
a.case后面的值只能是常量不能是變量,且多個case的值互相之間不能是相同的查剖。
b.default可以省略钾虐,但是不建議,因為它可以對不正確的情況做出提示笋庄。//除非判斷的值是固定的如單選題效扫。
c.break省略不會報錯,但是結(jié)果不一定是你想要的(容易出現(xiàn)case穿透的現(xiàn)象)至于最后的break是否省略不重要直砂。
d.default可以出現(xiàn)在switch語句中的任意位置菌仁。//建議在最后。
e.switch語句的結(jié)束條件:
A.遇到break結(jié)束静暂。
B,執(zhí)行到末尾就結(jié)束济丘。
③循環(huán)結(jié)構(gòu)
循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼洽蛀,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句摹迷,在反復(fù)執(zhí)行這個循環(huán)體時需要在合適的時候?qū)⒀h(huán)判斷條件修改為false,從而結(jié)束循環(huán)郊供,否則循環(huán)將一直執(zhí)行下去形成死循環(huán)泪掀。
循環(huán)語句的組成:
①初始化語句:
可以完成一些初始化操作。
②判斷條件語句:
這是一個boolean表達式颂碘,可以決定是否執(zhí)行循環(huán)體异赫。
③循環(huán)體語句:
也就是將多次做的事情。
④控制條件語:
通過用于控制循環(huán)條件中的變量头岔,使循環(huán)在合適的時候結(jié)束塔拳。