03.循環(huán)結(jié)構(gòu)

1.循環(huán):重復(fù)性做某件事。作用:減化代碼,提高復(fù)用性

2.循環(huán)結(jié)構(gòu)的組成部分

2.1:初始化語(yǔ)句:要作循環(huán)前的準(zhǔn)備語(yǔ)句。
2.2:循環(huán)條件(判斷語(yǔ)句):循環(huán)要執(zhí)行時(shí)滿足條件。
2.3:條件疊加(控制語(yǔ)句):改變循環(huán)的條件
2.4:循環(huán)體:循環(huán)要做的事

3.for循環(huán):解決先判斷后執(zhí)行,循環(huán)次數(shù)固定的重復(fù)性操作問(wèn)題

3.1:語(yǔ)法:for(初始化語(yǔ)句1;循環(huán)條件2;條件疊加3){
循環(huán)體北专;
}

for循環(huán).png

3.2:執(zhí)行流程:先執(zhí)行初始化語(yǔ)句1,再判斷循環(huán)條件2旬陡,如果循環(huán)條件2為false,就跳出for循環(huán)結(jié)構(gòu)拓颓,執(zhí)行之后語(yǔ)句;如果循環(huán)條件2為true,就執(zhí)行循環(huán)體描孟,再執(zhí)行條件疊加3驶睦,重復(fù)藍(lán)色字體部分。
3.3:結(jié)構(gòu)特點(diǎn):
3.3.1:for循環(huán)結(jié)構(gòu)的初始化語(yǔ)句1有且僅執(zhí)行一次匿醒;循環(huán)條件2可以執(zhí)行一次到多次场航;條件疊加3和循環(huán)全可以執(zhí)行0次到多次。
3.3.2:for循環(huán)結(jié)構(gòu)中小括號(hào)中兩個(gè)分號(hào)一定不能省略廉羔。
3.3.3:for循環(huán)結(jié)構(gòu)初始化語(yǔ)句1不能直接省略溉痢,如果要省略可以將初始化語(yǔ)句1寫(xiě)在for循環(huán)結(jié)構(gòu)前面;循環(huán)條件2直接可以省略蜜另,省略后就變成死循環(huán)适室;條件疊加3直接省略嫡意,就變成死循環(huán)举瑰,如果想省略條件疊加3又不會(huì)變成死循環(huán);for循環(huán)結(jié)構(gòu)三個(gè)條件可以同時(shí)省略蔬螟,只是死循環(huán)此迅。
3.3.4:for循環(huán)結(jié)構(gòu)的初始化語(yǔ)句1和條件疊加3可以由一到多個(gè)式子組成,式子之間用逗號(hào)分隔。

  eg:for(int i=1;i<=100;i++){
?          System.out.println("第"+i+"次good good study,day day up");
?      }

4.while循環(huán):解決先判斷后執(zhí)行耸序,循環(huán)次數(shù)不固定

4.1:語(yǔ)法:
初始化語(yǔ)句;
while(循環(huán)條件){
循環(huán)體忍些;
疊加條件;

while循環(huán).png

4.2:執(zhí)行流程:先執(zhí)行初始化語(yǔ)句坎怪,再判斷循環(huán)條件罢坝,如果循環(huán)條件為false,跳出while循 環(huán),執(zhí)行之后的語(yǔ)句搅窿;如果循環(huán)條件為true,就執(zhí)行循環(huán)體和疊加條件嘁酿,然 后再重復(fù)藍(lán)色字體部分。
4.3:結(jié)構(gòu)特點(diǎn):while循環(huán)結(jié)構(gòu)中男应,初始化語(yǔ)句有且僅執(zhí)行一次闹司,循環(huán)條件可以執(zhí)行1次到多 次,循環(huán)體和疊加條件可以執(zhí)行0次到多次沐飘。

      eg:public static void main(String[] args){
      //初始化語(yǔ)句
      int saveMoney=0;//存款
      int save=3000;//每個(gè)月要存的錢(qián)數(shù)
      int month=0;
      while(saveMoney<=10000000){
          //循環(huán)體
          saveMoney=saveMoney+save;
          //疊加條件
          month++;
          save=save+1000;
      }
      System.out.println(month+"個(gè)月后成為千萬(wàn)富翁,共用"+(month/12)+"年");
 }

5.do-while循環(huán):解決先無(wú)條件執(zhí)行一次循環(huán)體游桩,再判斷再執(zhí)行的重復(fù)性問(wèn)題

5.1:語(yǔ)法:
初始化語(yǔ)句;
do{
循環(huán)體耐朴;
疊加條件借卧;
}while(循環(huán)條件);

do-while循環(huán).png

5.2:執(zhí)行流程:先執(zhí)行初始化語(yǔ)句,然后執(zhí)行循環(huán)體和疊加條件隔箍,再執(zhí)行循環(huán)條件谓娃,如果循環(huán) 條件為false,就跳出循環(huán)結(jié)構(gòu),執(zhí)行之后的語(yǔ)句蜒滩;如果循環(huán)條件為true,就執(zhí)行 循環(huán)體和疊加條件滨达,再重復(fù)藍(lán)色字體部分。
5.3:結(jié)構(gòu)特點(diǎn):do-while循環(huán)結(jié)構(gòu)初始化語(yǔ)句有且僅執(zhí)行一次俯艰,循環(huán)體和疊加條件至少執(zhí)行一 次捡遍,循環(huán)條件至少執(zhí)行一次。

      eg:public static void main(String[] args){
      //獲得具有從鍵盤(pán)上接收數(shù)據(jù)的能力
      Scanner input=new Scanner(System.in);
      //初始化語(yǔ)句
      String result="";
      do{
          //循環(huán)體
          System.out.println("編碼考試");
          //循環(huán)疊加
          System.out.println("考試是否合格竹握?(y/n)");
          //從鍵盤(pán)上接收數(shù)據(jù)并存在變量中
          result=input.next();
      }while(!result.equals("y"));
  }

6.for VS while VS do-while

6.1:能用for循環(huán)解決的問(wèn)題都可以用while循環(huán)解決画株;能用while循環(huán)解決的問(wèn)題都可以用for 循環(huán)解決。一般解決先判斷后執(zhí)行啦辐,循環(huán)次數(shù)固定的重復(fù)性問(wèn)題谓传,首選for循環(huán)。
一般解決先判斷后執(zhí)行芹关,循環(huán)次數(shù)不固定的重復(fù)性問(wèn)題续挟,首選while循環(huán)。
6.2:能用for循環(huán)或者while循環(huán)解決的問(wèn)題侥衬,不一定能用do-while循環(huán)解決诗祸。
能用do-while循環(huán)解決的問(wèn)題跑芳,都可以用for循環(huán)或者while循環(huán)解決。
6.3:只要是有重復(fù)性的操作直颅,就要用循環(huán)結(jié)構(gòu)博个;只要是先執(zhí)行后判斷的重復(fù)性問(wèn)題就用do- while循環(huán)結(jié)構(gòu),先判斷后執(zhí)行功偿,循環(huán)次數(shù)固定的重復(fù)性問(wèn)題盆佣,首選for循環(huán),先判斷 后執(zhí)行械荷,循環(huán)次數(shù)不固定的重復(fù)性問(wèn)題罪塔,首選while循環(huán)

7.嵌套循環(huán)結(jié)構(gòu):在一個(gè)循環(huán)結(jié)構(gòu)的大括號(hào)中完整的包含了另一個(gè)循環(huán)結(jié)構(gòu)

7.1:循環(huán)結(jié)構(gòu)的嵌套可以是多層,嵌套要正確养葵。一般情況常用兩層嵌套的循環(huán)結(jié)構(gòu)征堪。
7.2:在嵌套循環(huán)結(jié)構(gòu)中,外層循環(huán)結(jié)構(gòu)循環(huán)一次关拒,內(nèi)層循環(huán)結(jié)構(gòu)要循環(huán)完佃蚜。(內(nèi)層循環(huán)其實(shí)是 外層循環(huán)的循環(huán)體中一部分)

eg:public static void main(String[] args){
  //獲得具有從鍵盤(pán)上接收數(shù)據(jù)的能力
  Scanner input=new Scanner(System.in);
  //接收三個(gè)班
  for(int j=1;j<=3;j++){
      System.out.println("請(qǐng)輸入第"+j+"班的成績(jī)");
      //從鍵盤(pán)上接收一個(gè)班四名學(xué)員的成績(jī)
      for(int i=1;i<=4;i++){
          System.out.println("請(qǐng)輸入第"+i+"名學(xué)員的成績(jī)");
          double score=input.nextDouble();
      }
  }
}

8.break:跳出結(jié)構(gòu)。只能用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中

9.1:break的作用:用在switch結(jié)構(gòu)中着绊,跳出switch結(jié)構(gòu)谐算。
用在循環(huán)結(jié)構(gòu)中,跳出當(dāng)前循環(huán)結(jié)構(gòu)归露。

  eg:public static void main(String[] args){
  //獲得從鍵盤(pán)上接收數(shù)據(jù)的能力
  Scanner input=new Scanner(System.in);
  for(int j=1;j<=3;j++){
      System.out.println("請(qǐng)輸入第"+j+"班的成績(jī):");
      for(int i=1;i<=4;i++){
          System.out.println("請(qǐng)輸入第"+i+"名學(xué)員的成績(jī):");
          double score=input.nextDouble();
          //判斷成績(jī)是否符合要求,不符合要求停止當(dāng)前班級(jí)的錄入洲脂,
                 //接著錄入下一個(gè)班
          if(score>100||score<0){
              break;//跳出內(nèi)層循環(huán)結(jié)構(gòu)
          }
      }
      System.out.println();
  }
}

9.2:break作標(biāo)記的用法:跳出作標(biāo)記的指定結(jié)構(gòu)
語(yǔ)法:標(biāo)記名 要跳出的結(jié)構(gòu);
break 標(biāo)記名;

      eg:public static void main(String[] args){
      //獲得從鍵盤(pán)上接收數(shù)據(jù)的能力
      Scanner input=new Scanner(System.in);
      a:for(int j=1;j<=3;j++){
          System.out.println("請(qǐng)輸入第"+j+"班的成績(jī):");
          for(int i=1;i<=4;i++){
              System.out.println("請(qǐng)輸入第"+i+"名學(xué)員的成績(jī):");
              double score=input.nextDouble();
              //判斷成績(jī)是否符合要求剧包,如果不符合要求就終止錄入
              if(score<0||score>100){
                  break a;//跳出標(biāo)記指定的外層循環(huán)結(jié)構(gòu)
              }
          }
          System.out.println();
      }
  }

9.continue:只能用在循環(huán)結(jié)構(gòu)中恐锦。結(jié)束當(dāng)次循環(huán),進(jìn)入下一次循環(huán)

eg:public static void main(String[] args){
      //獲得從鍵盤(pán)上接收數(shù)據(jù)的能力
      Scanner input=new Scanner(System.in);
      for(int i=1;i<=4;i++){
          System.out.println("請(qǐng)輸入第"+i+"名學(xué)員的成績(jī):");
          double score=input.nextDouble();
          //第一種:用continue實(shí)現(xiàn)
          if(score>100||score<0){
              continue;//結(jié)束當(dāng)次循環(huán)疆液,進(jìn)入下一次循環(huán)
          }
          System.out.println("成績(jī)錄入成功");
          /*第二種:用if結(jié)構(gòu)實(shí)現(xiàn)
          if(score<=100&&score>=0){
              System.out.println("成績(jī)錄入成功");
          }*/
      }
  }

10.return:可以在方法的任何地方用一铅。作用:結(jié)束當(dāng)前方法;線束當(dāng)前的方法的同時(shí)返回一個(gè)結(jié)果

注意:return關(guān)鍵字后面不能直接寫(xiě)代碼堕油,是永遠(yuǎn)無(wú)法執(zhí)行的代碼會(huì)報(bào)錯(cuò)潘飘。

eg:public static void main(String[] args){
  //獲得從鍵盤(pán)上接收數(shù)據(jù)的能力
  Scanner input=new Scanner(System.in);
  for(int j=1;j<=3;j++){
      System.out.println("請(qǐng)輸入第"+j+"班的成績(jī):");
      for(int i=1;i<=4;i++){
          System.out.println("請(qǐng)輸入第"+i+"名學(xué)員的成績(jī):");
          double score=input.nextDouble();
          //判斷成績(jī)是否符合要求,如果不符合要求就終止錄入
          if(score<0||score>100){
              return;//結(jié)束main方法
          }
      }
      System.out.println();
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掉缺,一起剝皮案震驚了整個(gè)濱河市卜录,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眶明,老刑警劉巖艰毒,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異赘来,居然都是意外死亡现喳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)犬辰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嗦篱,“玉大人,你說(shuō)我怎么就攤上這事宵蛀∪砉祝” “怎么了异旧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)浴栽。 經(jīng)常有香客問(wèn)我,道長(zhǎng)轿偎,這世上最難降的妖魔是什么典鸡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮坏晦,結(jié)果婚禮上萝玷,老公的妹妹穿的比我還像新娘。我一直安慰自己昆婿,他們只是感情好球碉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著仓蛆,像睡著了一般睁冬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上看疙,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天豆拨,我揣著相機(jī)與錄音,去河邊找鬼能庆。 笑死辽装,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的相味。 我是一名探鬼主播拾积,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丰涉!你這毒婦竟也來(lái)了拓巧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤一死,失蹤者是張志新(化名)和其女友劉穎肛度,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體投慈,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡承耿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年冠骄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片加袋。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凛辣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出职烧,到底是詐尸還是另有隱情扁誓,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布蚀之,位于F島的核電站蝗敢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏足删。R本人自食惡果不足惜寿谴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望失受。 院中可真熱鬧拭卿,春花似錦、人聲如沸贱纠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谆焊。三九已至惠桃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辖试,已是汗流浹背辜王。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罐孝,地道東北人呐馆。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像莲兢,于是被迫代替她去往敵國(guó)和親汹来。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1 順序語(yǔ)句 語(yǔ)句:使用分號(hào)分隔的代碼稱(chēng)作為一個(gè)語(yǔ)句改艇。 注意:沒(méi)有寫(xiě)任何代碼只是一個(gè)分號(hào)的時(shí)候收班,也是一條語(yǔ)句,...
    哈哈哎呦喂閱讀 381評(píng)論 0 0
  • Java經(jīng)典問(wèn)題算法大全 /*【程序1】 題目:古典問(wèn)題:有一對(duì)兔子谒兄,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子摔桦,小兔子...
    趙宇_阿特奇閱讀 1,869評(píng)論 0 2
  • Day01 class 例子{ public static void main(String[] args){ ...
    周書(shū)達(dá)閱讀 1,041評(píng)論 0 0
  • 第一章 初識(shí)javaJAVA 第一講:什么是程序?:為了讓計(jì)算機(jī)執(zhí)行某些操作或解決某個(gè)問(wèn)題而編寫(xiě)的一系列有序指令的...
    人子日月幾點(diǎn)閱讀 517評(píng)論 0 1
  • 幾個(gè)問(wèn)題 張三oracle考試成績(jī)未達(dá)到自己的目標(biāo)。為了表明自己勤奮學(xué)習(xí)的決心承疲,他決定寫(xiě)一百遍“好好學(xué)習(xí)邻耕,天天向上...
    蛋炒飯_By閱讀 778評(píng)論 0 0