循環(huán)結(jié)構(gòu)——循環(huán)概述與基本組成部分
循環(huán)結(jié)構(gòu)的基本組成部分,一般可分為4步:
? ? 1、初始化語(yǔ)句:再循環(huán)開(kāi)始最初執(zhí)行,而且制作唯一一次。
? ? 2、條件判斷:如果成立,則繼續(xù)循環(huán);如果不成立,則循環(huán)退出。
? ? 3、循環(huán)體:重復(fù)要做的事情內(nèi)容,若干行語(yǔ)句。
? ? 4、步進(jìn)語(yǔ)句:每次循環(huán)之后都要進(jìn)行的掃尾工作,每次循環(huán)結(jié)束之后都要進(jìn)行一次。
循環(huán)結(jié)構(gòu)——for循環(huán)
for循環(huán)語(yǔ)句結(jié)構(gòu):
? ? for(初始化表達(dá)式1;布爾表達(dá)式2;步進(jìn)表達(dá)式3){
? ? 循環(huán)體4;
????}
執(zhí)行流程:
? ? 執(zhí)行順序:1234>234>234>234...2
? ? 1:負(fù)責(zé)完成循環(huán)變量初始化。
? ? 2:負(fù)責(zé)判斷是否滿(mǎn)足循環(huán)條件,不滿(mǎn)足則跳出循環(huán)圈。
? ? 3:具體執(zhí)行語(yǔ)句。
? ? 4:循環(huán)后,循環(huán)條件所涉及變量的變化情況
例:
?//for(初始化表達(dá)式;布爾表達(dá)式;步進(jìn)表達(dá)式)
????for(int i =1;i<=100;i++){
?//循環(huán)體
??????? System.out.println("你好"+i);
????}
/*輸出結(jié)果為:你好1
你好2
你好3
...
你好100
*/
循環(huán)結(jié)構(gòu)——while循環(huán)
while循環(huán)有一個(gè)標(biāo)準(zhǔn)模式,和一個(gè)擴(kuò)展模式
標(biāo)準(zhǔn)模式:
? ? while(條件判斷){
??????? 循環(huán)體
????}
擴(kuò)展模式:
? ? 初始語(yǔ)句;
? ? while(條件判斷){
??????? 循環(huán)體;
??????? 步進(jìn)語(yǔ)句;
????}
例:
int q =1;
????while (q<=10) {
????????System.out.println("你好"+q);
??????? q++;
????}
循環(huán)結(jié)構(gòu)——do-while循環(huán)
do while循環(huán)也有兩種格式:
? ? 標(biāo)準(zhǔn)模式:
? ? ? ? do{
? ? ? ? 循環(huán)體
????????}
? ? 擴(kuò)展模式:
? ? ? ? 初始化語(yǔ)句;
? ? ? ? do{
??????????? 循環(huán)體;
??????????? 步進(jìn)語(yǔ)句;
????????}while(條件判斷);
例:
????int w =20;
????do {
????????System.out.println("你好"+w);
??????? w++;
????}while(w<=30);
練習(xí)——用循環(huán)求出1-100之間偶數(shù)的和
for循環(huán):
int num =0;//用來(lái)累加偶數(shù)
for (int i =1; i <=100; i++) {//初始語(yǔ)句;條件語(yǔ)句;步進(jìn)語(yǔ)句
if (i %2 ==0) {//如果i是偶數(shù)
num += i;//將i存進(jìn)num里
??????????? }
????}
????System.out.println("結(jié)果是" + num);//輸出結(jié)果為2550
do while循環(huán):
int q =0;//用來(lái)累加偶數(shù)
int w =0;//初始化語(yǔ)句
do {//大括號(hào)里是循環(huán)體
if (w %2 ==0) {//條件:w%2=0
q += w;//滿(mǎn)足條件的w會(huì)被存進(jìn)q相加
? ? }
w++;//步進(jìn)語(yǔ)句
}while (w <=100);//條件判斷
System.out.println("結(jié)果是:" + q);//結(jié)果是:2550
三種循環(huán)的區(qū)別
????1、如果條件判斷從來(lái)沒(méi)有滿(mǎn)足過(guò),那么for循環(huán)和while循環(huán)將會(huì)執(zhí)行一次,到那時(shí)do while會(huì)執(zhí)行一次
? ? 2、for循環(huán)的變量在小括號(hào)當(dāng)中定義,只有循環(huán)內(nèi)部才可以使用。while循環(huán)和do while初始化語(yǔ)句本來(lái)就在外面,所以出來(lái)循環(huán)之后還可以繼續(xù)使用。
循環(huán)控制——break語(yǔ)句
break關(guān)鍵字的用法有常見(jiàn)兩種:
? ? 1、可以用在switch語(yǔ)句當(dāng)中,一旦執(zhí)行,整個(gè)switch立刻結(jié)束。
? ? 2、還可以用在循環(huán)語(yǔ)句當(dāng)中,一旦hi行,整個(gè)循環(huán)語(yǔ)句立刻結(jié)束,打斷循環(huán)。
小建議:凡是次數(shù)確定的場(chǎng)景多用for循環(huán),否則多用while循環(huán)。
? ? 例:
????for (int i=1;i<=10;i++){
??//如果希望在第4次就停止循環(huán),那么就應(yīng)該打斷循環(huán)
if (i==4){//當(dāng)前循環(huán)四第4次
break;//打斷循環(huán)
??????? }
????System.out.println("你好"+i);
????}
循環(huán)控制語(yǔ)句——continue語(yǔ)句
一旦執(zhí)行,立刻跳過(guò)當(dāng)前循環(huán)剩余內(nèi)容,馬上開(kāi)始下一次循環(huán)。
例:
????for (int i=1;i<=10;i++){
if (i==4){//當(dāng)前循環(huán)四第4次
continue;//停止這一次循環(huán),直接進(jìn)入下一次循環(huán)。
? ? }
????System.out.println("你好"+i);
????}
死循環(huán)
永遠(yuǎn)停不下來(lái)的循環(huán)叫死循環(huán)。
死循環(huán)的標(biāo)準(zhǔn)格式:
? ? while(true){
? ? 循環(huán)體;
????}
例: ? ?
????while(true){
????System.out.println("你好");
????}
循環(huán)嵌套
????for (int hour =0;hour<24;hour++){
????????for (int minute =0;minute<60;minute++){
????????????for (int seconds =0;seconds<60;seconds++){
????????????????System.out.println(hour+"時(shí)"+minute+"分"+seconds+"秒");
??????????? }
????????}
????}