流程控制語(yǔ)句
流程控制語(yǔ)句的內(nèi)容
順序結(jié)構(gòu);判斷(分支選擇)結(jié)構(gòu);循環(huán)結(jié)構(gòu)
順序結(jié)構(gòu)
程序是從上往下進(jìn)行加載,按照代碼的編寫(xiě)順序進(jìn)行執(zhí)行.
判斷(分支選擇)結(jié)構(gòu)
if else語(yǔ)句
1.if 單支情況
if語(yǔ)句的格式:
1if (布爾類型表達(dá)式/布爾類型值) {
2
3 // 語(yǔ)句體。。。。
4
5 }
if語(yǔ)句(單支)的執(zhí)行流程:
首先判斷布爾表達(dá)式的結(jié)果是false還是true
如果是true就執(zhí)行{}里面方法體的內(nèi)容
如果false就不執(zhí)行{}里面的方法體內(nèi)容,程序往后加載
2.if else 雙支情況
格式:
1 if (布爾類型表達(dá)式) {
2
3 // 語(yǔ)句體內(nèi)容1;
4
5 } else {
6
7 // 語(yǔ)句體內(nèi)容2;
8
9 }
if else 多支的執(zhí)行流程:
首先判斷布爾類型表達(dá)式看它的結(jié)果是true還是false
如果是true,就執(zhí)行語(yǔ)句體內(nèi)容1
如果是false,就執(zhí)行語(yǔ)句體內(nèi)容2
3.if … else if … else語(yǔ)句 多支情形
格式:
1 if(布爾類型表達(dá)式1) {
2
3 // 方法體內(nèi)容1。。。。
4
5 } else if (布爾類型表達(dá)式2) {
6
7 // 方法體內(nèi)容2.。。。。。
8
9 }
10
11 .........
12
13 } else if (布爾類型表達(dá)式n) {
14
15 // 方法體內(nèi)容n。。。。
16
17 } else {
18
19 // 方法體內(nèi)容n+1。。。。
20
21 }
執(zhí)行流程:
首先判斷布爾類型表達(dá)式1看其結(jié)果是true還是false
如果是true,就執(zhí)行方法體內(nèi)容1
如果是false,就繼續(xù)判斷布爾類型表達(dá)式2,看其結(jié)果是true還是false
如果是true,就執(zhí)行方法體內(nèi)容2
如果是false,就繼續(xù)判斷布爾類型表達(dá)式…,看其結(jié)果是true還是false
…
如果以上所有的布爾類型表達(dá)式都為false,最后執(zhí)行else{}里面的方法體內(nèi)容n+1。
4.if … if … else …else語(yǔ)句 嵌套情形
格式:
1 if (布爾類型表達(dá)式1) {
2
3 // 方法體內(nèi)容1
4
5 。。。。
6
7 if (布爾類型表達(dá)式2){
8
9 // 方法體內(nèi)容2
10
11 。。。。。。
12
13 } else {
14
15 // 方法體內(nèi)容3
16
17 。。。。。
18
19 }
20
21 } else {
22
23 // 方法體內(nèi)容4
24
25 。。。。。。
26
27 }
執(zhí)行流程:
首先判斷布爾類型表達(dá)式1,看其結(jié)果是true還是false
如果是true,就執(zhí)行方法體內(nèi)容1,在繼續(xù)判斷布爾類型表達(dá)式2,看其結(jié)果是true還是
false,如果是true,就執(zhí)行方法體內(nèi)容2.
如果是false,就執(zhí)行方法體內(nèi)容3。。。。如果是false,就執(zhí)行方法體內(nèi)容4,之后加載后面的程序。
If語(yǔ)句和三目運(yùn)算符的互換
If語(yǔ)句和三目運(yùn)算符的互換
int num01 = 10;
int num02 = 20;
// 定義一個(gè)變量,保存num01和num02的最大值 int c;
if (num01 > num02) { c = num01;
} else { c = num02;
} // 上面的語(yǔ)句我們也可以使用三目運(yùn)算符 c = num01 > num02 ?
num01 : num02;
switch case語(yǔ)句
格式:
switch(表達(dá)式/變量) { case 常量值1: // 語(yǔ)句體內(nèi)容1 break; case 常量值2: // 語(yǔ)句體內(nèi)容2 break; ..... default: // 語(yǔ)句體n break; }
執(zhí)行流程:
首先計(jì)算出表達(dá)式中的值
其次,依次和case后面的常量值做比較,一旦有對(duì)應(yīng)的值,就會(huì)執(zhí)行相應(yīng)的語(yǔ)句體內(nèi)容,
在執(zhí)行的過(guò)程中,遇到break就會(huì)結(jié)束switch case語(yǔ)句。
最后,如果所有的case都和表達(dá)式的值不匹配,就會(huì)執(zhí)行default中的語(yǔ)句體內(nèi)容,然后switce case語(yǔ)句結(jié)束。

注意:在switch語(yǔ)句中,表達(dá)式的數(shù)據(jù)類型,可以是byte/short/int/char/enum(枚舉),JDK1.7之后可以接收字符串類型。
case的穿透性
在switch語(yǔ)句,如果case后面的break省略掉,將會(huì)出現(xiàn)穿透現(xiàn)象。不會(huì)判斷后面的case情形值,直接加載后面的case中的方法體內(nèi)容,直到遇到break結(jié)束。
循環(huán)結(jié)構(gòu) 【重點(diǎn)】
: 【三種基本循環(huán)】for、while、do-while
循環(huán)結(jié)構(gòu)組成部分:一般可以分成4部分
初始化語(yǔ)句:在循環(huán)最初開(kāi)始時(shí),需要定義一個(gè)初始化的變量,而且只會(huì)定義一次。
條件判斷(結(jié)束條件):如果條件成立滿足,進(jìn)入循環(huán),如果條件不滿足,則退出循環(huán)
循環(huán)體內(nèi)容: 重復(fù)要做的事情內(nèi)容,可能包含很多條語(yǔ)句(事情是有規(guī)律的)
迭代語(yǔ)句(步進(jìn)語(yǔ)句):每次循環(huán)結(jié)束之后需要執(zhí)行步進(jìn)語(yǔ)句(跌代語(yǔ)句),對(duì)初始化的變量做步進(jìn)(迭代)。
for循環(huán)語(yǔ)句結(jié)構(gòu)
格式:
for(1.初始化語(yǔ)句;2.條件判斷表達(dá)式;4.迭代語(yǔ)句) { // 3.循環(huán)體內(nèi)容 }
執(zhí)行流程:
執(zhí)行順序: 1–>2–>3–>4–>2–>3–>4–>2—>3–>4…2不滿足為止。
1 負(fù)責(zé)循環(huán)變量的初始化
2 負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足退出循環(huán)
3.負(fù)責(zé)執(zhí)行具體的語(yǔ)句(邏輯功能)
4.負(fù)責(zé)變量的迭代

while循環(huán)語(yǔ)句
格式:
// 1.初始化語(yǔ)句; while(2.判斷條件) { // 3.循環(huán)體內(nèi)容 // 4. 步進(jìn)語(yǔ)句; }
執(zhí)行流程:
執(zhí)行順序:1–>2–>3–>4–>2–>3–>4–>2–>3—>4—>…2不滿足為止
1 負(fù)責(zé)循環(huán)變量初始化
2 負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)
3 負(fù)責(zé)執(zhí)行具體語(yǔ)句,實(shí)現(xiàn)某個(gè)功能。
4 迭代循環(huán)變量
do-while循環(huán)語(yǔ)句
格式:
// 1. 初始化語(yǔ)句 do { // 3.循環(huán)體內(nèi)容 // 4.迭代語(yǔ)句 } while (2.判斷條件);
執(zhí)行流程:
執(zhí)行順序: 1–>3—>4—>2—>3—>4---->2---->3—>4—>…2不滿足為止
1負(fù)責(zé)定義循環(huán)變量,并且進(jìn)行初始化
2負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)
3負(fù)責(zé)執(zhí)行具體語(yǔ)句,實(shí)現(xiàn)某個(gè)功能
4迭代循環(huán)變量
備注:無(wú)條件執(zhí)行一次循環(huán)體內(nèi)容,即使判斷條件是不滿足也依然循環(huán)一次,這樣的循環(huán)是有風(fēng)險(xiǎn)的,不建議使用。
for和while的區(qū)別
控制語(yǔ)句中所涉及到的循環(huán)變量,當(dāng)for循環(huán)結(jié)束后,定義的循環(huán)變量不能再被訪問(wèn)到,而while循環(huán)結(jié)束后依然可以被訪問(wèn)到。如果不繼續(xù)使用循環(huán)變量,建議使用for循環(huán),因?yàn)閒or循環(huán)結(jié)束后,循環(huán)變量就會(huì)從內(nèi)存中消失,能夠提高內(nèi)存的使用效率。
在已知循環(huán)次數(shù)的情況下,建議使用for循環(huán),當(dāng)循環(huán)次數(shù)不確定時(shí)使用while循環(huán)。
跳出語(yǔ)句
break,continue兩個(gè)語(yǔ)句
break
使用情形:終止switch語(yǔ)句或者循環(huán)語(yǔ)句
備注:離開(kāi)了使用場(chǎng)景對(duì)于break來(lái)說(shuō)沒(méi)有意義。
對(duì)編程感興趣的可以點(diǎn)擊
java面向?qū)ο缶幊蘝java79節(jié)課精講面對(duì)對(duì)象