結(jié)構(gòu)性語句主要有順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種,下面分別進行介紹。
順序結(jié)構(gòu):
顧名思義,順序結(jié)構(gòu)就是從上往下依次執(zhí)行,這個比較簡單,不用再多說。其實其他結(jié)構(gòu)性語句的基本邏輯也是從上往下依次執(zhí)行,只不過因為不同的代碼語句在此基礎(chǔ)上有其他的特點。
選擇結(jié)構(gòu):
選擇結(jié)構(gòu)主要有兩種,一種是if語句,一種是switch語句。下面分別介紹。
if選擇語句:
if有三種格式,第一種格式是if最基本的最原始的格式:
if(boolean數(shù)據(jù)類型){語句;}
小括號內(nèi)必須是布爾類型數(shù)據(jù),當(dāng)為true時,執(zhí)行后面的語句,當(dāng)W為false時,不執(zhí)行后面的語句;如果后面只有一條語句,可以不用大括號括起來,但如果有多條語句,就必須使用大括號將所有語句括起來,這是因為if只能作用緊跟它后面的一條語句。
假如設(shè)成績?yōu)閟core,括號內(nèi)為score>60;當(dāng)score符合括號內(nèi)條件,語句輸出及格,由第一種if格式可以實現(xiàn),那么如果score不符合括號內(nèi)條件;我們想要輸出不及格時,應(yīng)該怎么辦呢?由此得出if的第二種格式:
if(boolean數(shù)據(jù)類型){
語句1;
}else{
語句2;
}
當(dāng)if后的小括號內(nèi)為true時,執(zhí)行語句1;當(dāng)if后的小括號內(nèi)為false時,執(zhí)行語句2。
第二種格式的作用是二者選其一,那如果可選項多于兩個,選擇其中一個,應(yīng)該怎么辦呢?這時有了if的第三種結(jié)構(gòu):
if(boolean數(shù)據(jù)類型){
語句1;
}else if(boolean數(shù)據(jù)類型){
語句2;
}else if(boolean數(shù)據(jù)類型){
語句3;
}else{
語句4;
}
看輸入數(shù)據(jù)符合哪個條件,就執(zhí)行哪個語句;最典型的例子是輸入成績判斷等級,這里不再寫出來了,大家可以去網(wǎng)上搜一搜,有好多這樣的例子,代碼、注釋都很清楚。
Switch選擇語句:
Switch選擇語句只有一種基本結(jié)構(gòu),我們首先來看一下它:
Switch(變量或表達式){
Case 值1:語句1;break;
Case 值2:語句2;break;
Case 值3:語句3;break;
……
Case 值n;語句n;break;
Default:語句m;break;
}
它的執(zhí)行過程是這樣的:switch后面的小括號里是變量或表達式,而case后面的值只能是常量,將小括號里的內(nèi)容依次和case后的常量值比較,與哪個值相等,就執(zhí)行哪個case后的語句,并且退出。
Switch結(jié)構(gòu)語句中有幾點注意事項需要注意:
int a=1;
switch(a){
case 1:System.out.println(“找到”);
case 2:System.out.println(“不對”);
case 3:System.out.println(“也不對”);
}
如果每條語句后存在break,那么在第一條語句匹配的時候,輸出“找到”,然后就會退出,但這里沒有break,所以輸出“找到”后,程序依次執(zhí)行下面的語句,輸出“不對”,“也不對”,甚至case都不進行判斷了,就算是個default,程序也會執(zhí)行,大家可以試一試。
同樣,對其它幾條注意事項,大家也可以練一練,比如第一條,case后只能是常量,你就偏把case后的值寫成其他類型,看會不會報錯。
循環(huán)結(jié)構(gòu):
循環(huán)結(jié)構(gòu)主要有兩種,一種是for循環(huán),一種是while循環(huán),下面分別介紹。
For循環(huán)語句:
For循環(huán)語句的格式為:
For(初始化語句;條件判斷語句;循環(huán)語句){循環(huán)體};
其實它的最基本的結(jié)構(gòu)是:
For(語句;boolean類型數(shù)據(jù);語句)語句;
和if、switch一樣,for也只能控制它后面的一條語句,所以當(dāng)有多條語句時就需要加上大括號,這樣就形成了循環(huán)體。
While循環(huán)語句:
While循環(huán)語句的格式為:
初始化語句;
While(循環(huán)語句){
循環(huán)體;
條件判斷語句;
}
同樣,它的最基本的結(jié)構(gòu)并不是這樣,而是:
While(循環(huán)語句){
循環(huán)體;
}
其中循環(huán)語句是布爾類型的,例如:
While(true){
System.out.println(“helloworld”);
}
當(dāng)括號內(nèi)為true時,輸出helloworld,但我們可以發(fā)現(xiàn),true不會變,一直是true,所以它會一直輸出helloworld不停止,是個死循環(huán),因此我們可以把true改為一個表達式,例如a>5;當(dāng)表達式為true時循環(huán),否則循環(huán)終止,這樣也就需要用到了初始化語句和條件判斷語句。例如:
int a=0;
while(a<3){
system.out.println(“你好世界”);
a++;
}
輸出結(jié)果為:
你好世界
你好世界
你好世界
附加:除了這兩種循環(huán)結(jié)構(gòu),還有一個do while循環(huán),他的結(jié)構(gòu)是:
Do{
循環(huán)體;
}while(循環(huán)語句);
很多人都說do while循環(huán)是先執(zhí)行再判斷,while循環(huán)是先判斷再執(zhí)行;但事實不是這樣,咱們可以用do while和while寫個循環(huán),然后一條語句一條語句,一次循環(huán)一次循環(huán)地試一試,會發(fā)現(xiàn),do while循環(huán)就相當(dāng)于while循環(huán)第一次不進行判斷,直接執(zhí)行循環(huán)體,從第二次開始,就和while循環(huán)一模一樣,先判斷,再執(zhí)行。