在平時(shí)的編程中,我們一定會(huì)遇到一種操作,就是需要重復(fù)的執(zhí)行某一項(xiàng)操作.重復(fù)的次數(shù)少還好,但是如果重復(fù)操作的次數(shù)太多,手動(dòng)操作就會(huì)很耗費(fèi)工作量,這個(gè)時(shí)候我們就可以用循環(huán)來進(jìn)行操作.
java為我們提供了for循環(huán),while循環(huán),do...while循環(huán),這樣我們就可以進(jìn)行某些重復(fù)性的操作.下面為大家分享幾種循環(huán).
1.for循環(huán)
for循環(huán)的操作較為靈活,因?yàn)槲覀兛梢宰约簺Q定循環(huán)的次數(shù),for循環(huán)的結(jié)構(gòu)為:
? ? ? ? ? ? for(初始表達(dá)式;布爾表達(dá)式;條件變化語句){
? ? ? ? ? ? ? ? ? ? 循環(huán)體;
????????????????}
a.各語句 作用如下:
? ????? ????1.初始表達(dá)式:聲明一個(gè)變量i并進(jìn)行賦值;
? ????? ????2.布爾表達(dá)式:對聲明的變量進(jìn)行判斷是否滿足某種關(guān)系,返回值為boolean型;
? ? ????????3.迭代因子:變量i的變化;
? ????????? 4.循環(huán)體:我們要循環(huán)執(zhí)行的語句.
需要注意的是,我們聲明的這個(gè)變量i是屬于for循環(huán)的,在for循環(huán)之外訪問不到.
b.for循環(huán)執(zhí)行流程:
? ? ? ????? 1.執(zhí)行初始表達(dá)式,聲明并初始化變量i;
? ? ? ????? 2.執(zhí)行布爾表達(dá)式,對變量的值進(jìn)行判斷,若返回的為true就執(zhí)行循環(huán)體,否則退出循環(huán);
? ? ? ????? 3.執(zhí)行條件變化語句
? ? 就這樣重復(fù)執(zhí)行第二步跟第三步,直到退出循環(huán).
c.例子:
//打印1~10之間的正數(shù)
for(int i=1;i<=10;i++){
System.out.print(i+" ");
}
打印結(jié)果就為:
1 2 3 4 5 6 7 8 9 10
2.while循環(huán)
while循環(huán)是一種條件循環(huán),若while(條件判斷)中的判斷返回的值為true,就執(zhí)行循環(huán)體,否則不執(zhí)行,
while循環(huán)的結(jié)構(gòu)為:
? ? ? ? ? ? ? ? ? ? 條件初始化;
? ? ? ? ? ? ? ? ? ? while(條件判斷){
? ? ? ? ? ? ? ? ? ? ? ? 循環(huán)體;
? ? ? ? ? ? ? ? ? ? ? ? 條件變化語句;
? ? ? ? ? ? ? ? ? ? ? ?}
a.各語句的作用:
? ? ? ? ? ? 條件初始化:聲明并初始化變量i;
? ? ? ? ? ? 條件判斷:對變量i進(jìn)行判斷,看返回值是否為true,若為true就執(zhí)行循環(huán)體,若不是就不執(zhí)行
? ? ? ? ? ? 循環(huán)體:要循環(huán)執(zhí)行的語句;
? ? ? ? ? ? 條件變化語句:跟for循環(huán)中的變化語句一樣,都是改變變量i的值
b.語句執(zhí)行流程:
? ? ? ? ? ? 1.先執(zhí)行初始條件語句,初始化變量值;
? ? ? ? ? ? 2.然后判斷i是否滿足條件判斷,滿足就執(zhí)行循環(huán)體,不滿足就退出循環(huán)
? ? ? ? ? ? 3.執(zhí)行條件變化語句,改變i的值
? ? ? ?重復(fù)執(zhí)行2,3兩步,直至跳出循環(huán).
c.例子:
//打印1~10之間的正數(shù)
int i=1;
while(i<=10){
System.out.print(i+" ");
i++
}
打印結(jié)果就為:
1 2 3 4 5 6 7 8 9 10
3.do...while循環(huán)
while循環(huán)是先進(jìn)行判斷,在執(zhí)行循環(huán)體;do...while循環(huán)是先執(zhí)行循環(huán)體再判斷
do...while循環(huán)的格式為:
條件初始化;
do{
循環(huán)體;
條件變化語句;
}while(條件判斷);
do...while循環(huán)中的語句跟while循環(huán)中的語句意思相同,就是語句的執(zhí)行順序不同,是先執(zhí)行do里面的,在執(zhí)行條件判斷.
4.break和continue
在循環(huán)中,我們可能在循環(huán)到某一步時(shí)就不要再執(zhí)行循環(huán)了,或者本次的循環(huán)不需要再往下執(zhí)行了,這個(gè)時(shí)候我們就可以使用break和continue關(guān)鍵字.
? ? ? ? ? ? break:
? ? ? ? ? ? ? ? 應(yīng)用場景:switch語句 ? ?循環(huán)
? ? ? ? ? ? ? ? 作用:終止 ? ?結(jié)束.在循環(huán)中就是整個(gè)循環(huán)不在執(zhí)行,比如在上面的for循環(huán)中,如果我們在 ? ? ? ? ? ? ? ? 執(zhí)行到i==4時(shí)就不想再往下執(zhí)行了,此時(shí)就可以使用break終止整個(gè)循環(huán),就算后面還有 ? ? ? ? ? ? ? [6,10],我們也不再執(zhí)行.
例子:
? ??????????for(int i=1;i<=10;i++){
? ??????????????????if(i==4){
? ??????????????????????????break;
? ??????????????????????????}
? ??????????????????System.out.print(i+" ");
? ??????}
結(jié)果為:
1 2 3?
????????????continue:
? ? ? ? ? ? ? ? 應(yīng)用場景:循環(huán)
? ? ? ? ? ? ? ? 作用:結(jié)束本次循環(huán),直接進(jìn)入下一次循環(huán)
例子:
for(int i=1;i<=10;i++){
if(i==4){
continue;
}
System.out.print(i+" ");
}
結(jié)果為:
1 2 3 5 6 7 8 9 10
5.循環(huán)嵌套
有時(shí)一層循環(huán)并不能滿足我們的需求,這個(gè)時(shí)候我們就可以使用循環(huán)嵌套.
對for循環(huán)舉例:
for(初始條件1;條件判斷1;條件變化1){
? ? ? ? //代碼1
? ? ? for(初始條件2;條件判斷2;條件變化2){
? ? ? ?//代碼2
? ? ? }?
//代碼3
}
這樣我們在執(zhí)行了初始條件1,條件判斷1,代碼1之后就可以執(zhí)行里面的那層for循環(huán),當(dāng)里層for循環(huán)執(zhí)行完后,就會(huì)執(zhí)行代碼3,然后執(zhí)行條件變化1,就這樣循環(huán),我們可以把里層for循環(huán)看做是外層for循環(huán)的循環(huán)體,這樣就可以很好理解雙層循環(huán).
外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)執(zhí)行一輪.