Java流程控制框架圖
Paste_Image.png
流程控制
一. 循環(huán)結(jié)構(gòu)
二. 分支結(jié)構(gòu)
三. 順序結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
- for循環(huán),for-each循環(huán)
for循環(huán)的語法格式:
for(初始化;布爾表達(dá)式;更新){
//需要執(zhí)行的代碼;
}
for-ex:
public static void main(String[] args){
for(int i = 0; i < 100; i++){
System.out.println("第"+(i+1)+"循環(huán)");
}
//for循環(huán)另外一種表達(dá)形式
int i = 0;
for(;i < 10;i++){
System.out.println("當(dāng)前i值:"+i);
}
}
for-each循環(huán)語法格式:
for(聲明局部變量 :集合容器){
//需要執(zhí)行的代碼;
}
提示:for-each循環(huán)中,聲明的局部變量的數(shù)據(jù)類型必須需要和集合容器內(nèi)的元素的數(shù)據(jù)類型匹配
for-each ex:
public static void main(String[] args){
int[] items = {1,2,3,4,5,6,7,8,9,10};
for(int item:items){
System.out.println("元素是:"+ item);
}
}
- while循環(huán)
while循環(huán)語法格式:
//只要布爾表達(dá)式結(jié)果為true,則會一直執(zhí)行循環(huán)內(nèi)容
while(布爾表達(dá)式){
//循環(huán)內(nèi)容;
}
提示:while循環(huán)的特點是先判斷布爾表達(dá)式是否為真,如果為真,繼續(xù)執(zhí)行循環(huán)體,否則跳過循環(huán)。
while-ex:
public static void main(String[] args){
int a = 10;
while(a > 0){
a--;
System.out.println("當(dāng)前a="+a);
}
}
- do..while循環(huán)
do..while循環(huán)語法格式:
do{
//執(zhí)行代碼;
}while(布爾表達(dá)式);
提示:布爾表達(dá)式在循環(huán)體的后面,所以語句塊在檢測布爾表達(dá)式之前已經(jīng)執(zhí)行了。 如果布爾表達(dá)式的值為true,則語句塊一直執(zhí)行,直到布爾表達(dá)式的值為false。
do-while ex:
public static void main(String[] args){
int a = 10;
do{
a--;
System.out.println("當(dāng)前a="+a);
}while(a > 0);
}
ps:可以通過上述代碼,看出while循環(huán)和do...while循環(huán)的區(qū)別。
在流程控制中,有時候我們可能需要當(dāng)程序執(zhí)行結(jié)果符合一定條件時,需要跳出循環(huán),繼續(xù)下一次的循環(huán)或者直接返回結(jié)果。就需要用到break,continue,return等關(guān)鍵詞。
- 關(guān)鍵詞
- break
特點:break主要用在循環(huán)語句或者switch語句中,用來跳出整個語句塊。break跳出當(dāng)前循環(huán),并且繼續(xù)執(zhí)行該循環(huán)下面的語句。
ex:
- break
public static void main(String[] args){
//當(dāng)i=8時,結(jié)束循環(huán),繼續(xù)執(zhí)行循環(huán)控制下面的代碼
for(int i = 0; i < 10;i++){
if(i == 8){
break;
}
System.out.println("i="+i);
}
System.out.println("循環(huán)結(jié)束");
}
下面代碼主要體現(xiàn)的是跳出當(dāng)前循環(huán):
public static void main(String[] args){
for(int i = 0; i < 10;i++){
System.out.println("i="+i);
for(int j = 0;j < 10;j++){
if(i == 8) break;
System.out.println("i="+i+";j="+j);
}
}
}
/*
如果當(dāng)i=8時,直接跳出所有循環(huán)該,怎么做呢?
我們可以給循環(huán)增加標(biāo)記符號,指定break或者continue
哪個循環(huán)。
*/
public static void loopFlag(){
one:for(int i = 0; i < 10;i++){
System.out.println("i="+i);
two:for(int j = 0;j < 10;j++){
if(i == 8) break one;
System.out.println("i="+i+";j="+j);
}
}
}
- continue
特點:continue適用于任何循環(huán)控制結(jié)構(gòu)中。作用是讓程序立刻跳轉(zhuǎn)到下一次循環(huán)的迭代。在for循環(huán)中,continue語句使程序立即跳轉(zhuǎn)到更新語句。在while或者do…while循環(huán)中,程序立即跳轉(zhuǎn)到布爾表達(dá)式的判斷語句。在嵌套循環(huán)中,指定跳到哪一個循環(huán)的迭代,使用標(biāo)記符號,用法跟break類似。 - return
特點:跳出整個函數(shù)體,函數(shù)體后面的部分不再執(zhí)行。
分支結(jié)構(gòu)
- if...else條件判斷
if語句后面可以跟else語句,當(dāng)if語句的布爾表達(dá)式值為false時,else語句塊會被執(zhí)行。
if...else語法格式:
if(布爾表達(dá)式){
//如果為真,布爾表達(dá)式為true;
//可執(zhí)行代碼;
} else {
//如果為假,布爾表達(dá)式為false;
//可執(zhí)行代碼;
}
ex:
public static void main(String[] args){
for(int i = 1;i < 10;i++){
if(i%2 == 0){
System.out.println("i="+i);
} else {
System.out.println("i="+i);
}
}
}
- switch...case...default分支判斷
switch語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
switch語法格式:
switch(變量){
case value :
//可執(zhí)行代碼
break; //可選
case value :
//可執(zhí)行代碼
break; //可選
//你可以有任意數(shù)量的case語句
default : //可選
//可執(zhí)行代碼
}
ex:
public static void main(String args[]){
int a = 1;
switch(a) {
case 0 :
System.out.println("a=0");
break;
case 1 :
case 2 :
System.out.println("a=2");
break;
case 3 :
System.out.println("a=3");
default :
System.out.println("輸入a="+a);
}
}