JavaScript-流程控制語句 > 循環(huán)語句

for 循環(huán)

for 循環(huán)是一種前測試循環(huán)語句,在反復(fù)執(zhí)行一段代碼之前柬采,都要先測試入口條件欢唾,如果條件為真,可以繼續(xù)循環(huán)粉捻,如果條件為假匈辱,必須跳出循環(huán)不再執(zhí)行。即反復(fù)執(zhí)行一段代碼直到測試條件為假時停止杀迹。

for (;;) { 
}

呆板的語法:

for (定義循環(huán)變量;變量的最大值或最小值;步長) {
     循環(huán)體亡脸;
}

這種解釋只能涵蓋 for 循環(huán)的一部分特殊結(jié)構(gòu),不能表示所有的 for 循環(huán)實現(xiàn)的情況树酪。應(yīng)該掌握 for 循環(huán)運行的一個軌跡浅碾、路徑,去推導(dǎo) for 循環(huán)運行的過程续语。



for 循環(huán)執(zhí)行過程:遇到 for 循環(huán)垂谢,立即執(zhí)行 ① 位置的語句,執(zhí)行完畢后立即執(zhí)行 ② 位置的語句疮茄,② 位置會強制得到一個 true 或 false的結(jié)果滥朱,如果為 true 表示入口條件為真,下一步執(zhí)行 ③ 位置的語句力试,如果為 false 表示入口條件為假徙邻,不再往下執(zhí)行,直接跳出循環(huán)執(zhí)行后面的 ⑤ 位置的語句畸裳。

如果能夠執(zhí)行到 ③ 位置缰犁,③ 是一個結(jié)構(gòu)體必須執(zhí)行完畢,再執(zhí)行 ④ 位置的語句怖糊,執(zhí)行完畢后再執(zhí)行 ② 位置的語句帅容,回到了判斷真假,如果為 true伍伤,繼續(xù)執(zhí)行 ③并徘,再執(zhí)行 ④……直到 ② 位置得到一個 false 的結(jié)果,循環(huán)結(jié)束跳出執(zhí)行 ⑤扰魂。

注意事項

  1. 小括號內(nèi)部必須有兩個分號麦乞。
  2. for 循環(huán) {} 后面不需要加分號。
  3. 如果 ② 位置語句不寫阅爽,相當(dāng)于沒有設(shè)置入口條件路幸,或者條件永遠為真,沒法限制什么時候停止循環(huán)了付翁,出現(xiàn)死循環(huán)简肴。
  4. ③ 位置是循環(huán)的結(jié)構(gòu)體,每次進入循環(huán)都要執(zhí)行完后百侧,才能執(zhí)行語句 ④砰识,③ 位置的語句是可以人為自定義的能扒,甚至可以書寫 if 語句。
  5. for 循環(huán)嵌套 if 語句:表示既要能夠執(zhí)行循環(huán)辫狼,還要滿足 if 語句的條件初斑。
  6. for 循環(huán)嵌套 for 循環(huán):外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)作為外層 ③ 位置的結(jié)構(gòu)體膨处,必須執(zhí)行完所有的內(nèi)層循環(huán)见秤,才能進入外層循環(huán)下一次的 ④。循環(huán)內(nèi)的變量是全局變量真椿,必須避免循環(huán)嵌套時起相同的變量名鹃答,內(nèi)層和外層變量名必須不同,常用的變量名 i突硝,j测摔,k。

do while 循環(huán)

do while 循環(huán)是一種后測試循環(huán)語句解恰,會先執(zhí)行一次結(jié)構(gòu)體锋八,執(zhí)行完后才會去判斷入口條件,如果條件為真能夠繼續(xù)下一次循環(huán)护盈,如果條件為假跳出循環(huán)挟纱。

do {
      結(jié)構(gòu)體;
} while(條件表達式);

do:做什么黄琼。后面是每次循環(huán)的循環(huán)體樊销。
while:當(dāng)……時候。
先執(zhí)行一次循環(huán)體脏款,然后當(dāng)條件表達式為真時可以繼續(xù)循環(huán)。

注意事項

  1. 如果循環(huán)中需要循環(huán)變量參與裤园,循環(huán)變量必須定義在循環(huán)外面撤师,否則會被重置。
  2. 循環(huán)變量自加的過程需要寫在 {} 循環(huán)體內(nèi)部拧揽。
  3. 如果將循環(huán)變量寫在結(jié)構(gòu)體內(nèi)剃盾,i的初始值每次都會被重置,容易出現(xiàn)死循環(huán)淤袜。
  4. 變量自加過程寫在輸出語句前面和后面痒谴,結(jié)果是不同的。
  5. do while 循環(huán)即便條件第一次測試就為假铡羡,也會執(zhí)行一次結(jié)構(gòu)體积蔚。
  6. 至少會執(zhí)行一次循環(huán)體。

while 循環(huán)

while 循環(huán)是一種前測試循環(huán)語句烦周,在執(zhí)行循環(huán)體之前都要測試入口條件尽爆,條件為真繼續(xù)執(zhí)行怎顾,條件為假直接跳出循環(huán)。

while (條件表達式) {
    循環(huán)體漱贱;
}

當(dāng)條件表達式為真時槐雾,執(zhí)行循環(huán)體,如果為假幅狮,跳出循環(huán)募强。

注意事項

  • 如果需要循環(huán)變量參與,必須定義在循環(huán)外部崇摄,避免被重置钻注。
  • 循環(huán)變量自加的過程寫在循環(huán)體內(nèi)部。

總結(jié)

遇到必須先執(zhí)行一次結(jié)構(gòu)體的循環(huán)配猫,使用 do while 循環(huán)幅恋。
先測試入口條件的循環(huán),可以選擇 for 循環(huán)或 while 循環(huán)泵肄。


break 語句

break 語句的作用可以立即停止當(dāng)前的 for捆交、do while、while 循環(huán)腐巢。
根據(jù)一些條件設(shè)置 break 位置品追,直到循環(huán)能夠執(zhí)行到 break 語句立即停止執(zhí)行,跳出循環(huán)冯丙。

注意事項
break 如果沒有特殊指示肉瓦,只能停止自己所在的那一層循環(huán),并不能終止外部循環(huán)胃惜。
如果想停止外層循環(huán)泞莉,可以給外層循環(huán)添加一個標簽名 label,在內(nèi)層循環(huán)的 break 關(guān)鍵字后面空格加一個 label 名船殉。


continue 語句

遇到 continue 表示當(dāng)前的一次循環(huán)數(shù)據(jù)不是我們想要的鲫趁,會立即停止當(dāng)前次的循環(huán),立即進入下一次循環(huán)利虫。

注意事項
要根據(jù)特殊條件設(shè)置 continue 的位置挨厚。continue 如果沒有特殊指示只能進入自己的下一次循環(huán),不能立即停止外層循環(huán)的這一次進入下一次糠惫。
控制外層循環(huán)的方式與 break 一樣疫剃,都是添加外層的標簽名。


break 和 continue 這兩個語句的出現(xiàn)可以幫助我們大量的優(yōu)化代碼硼讽,減少了計算機的計算次數(shù)巢价。


窮舉思想

實際案例中,可能需要找到一些有規(guī)律的數(shù)據(jù),但是計算機沒辦法自動智能篩選所要的數(shù)據(jù)蹄溉,只能程序員自己書寫一段代碼咨油,讓計算機根據(jù)代碼去進行篩選。
窮舉思想:是一種解決問題的方法柒爵,將所有的需要數(shù)據(jù)所在的范圍內(nèi)所有的數(shù)據(jù)都一一列舉出來役电,再根據(jù)規(guī)律的條件對所有這些數(shù)據(jù)進行篩選,這種方式就是窮舉法棉胀。窮:窮盡法瑟,舉:列舉

  • for 循環(huán):外層使用 for 循環(huán)進行一一列舉。
  • if 語句:內(nèi)層用 if 語句進行判斷唁奢,篩選需要的數(shù)據(jù)霎挟,如果滿足條件就操作數(shù)據(jù),如果不滿足條件跳過看下一次循環(huán)的數(shù)據(jù)麻掸。


    找到6的約數(shù)

累加器

有時候需要的不是每個數(shù)據(jù)是什么酥夭,需要得到所有數(shù)據(jù)的加和,必須想辦法將所有的數(shù)據(jù)的和存起來脊奋,就用到了累加器熬北。累加器本質(zhì)就是變量。實現(xiàn)累加的效果诚隙,就是利用循環(huán)讶隐,每次循環(huán)就將新的數(shù)據(jù)加到原始的變量中去,賦值過程是一個加等于賦值久又。

  • 求 1-10 之間所有數(shù)字的和巫延。

    注意事項
  • 累加器必須定義在循環(huán)外面的前面,如果定義在循環(huán)內(nèi)部地消,每次循環(huán)都會將累加器重置炉峰,不能實現(xiàn)累加功能。
  • 累加器的初始值必須設(shè)置犯建,而且必須設(shè)置為 0讲冠,不會影響累加結(jié)果。
  • 使用最終累加結(jié)果時适瓦,必須在 for 循環(huán)結(jié)束后的外面,如果寫在循環(huán)內(nèi)部谱仪,循環(huán)沒結(jié)束玻熙,并不是最終需要的值。

累乘器

累乘器累積一些數(shù)據(jù)的乘積疯攒。與累加器非常類似嗦随。

  • 求 1 到 10 的累乘的乘積,也叫作 10!,階乘枚尼。

    注意事項
  • 累乘器必須定義在循環(huán)外部前面贴浙。
  • 累乘器的初始值必須是 1,1 乘以任何數(shù)都等于本身署恍。
  • 累乘器最終結(jié)果必須在 for 循環(huán)結(jié)束后使用崎溃。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者盯质。
  • 序言:七十年代末袁串,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呼巷,更是在濱河造成了極大的恐慌囱修,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件王悍,死亡現(xiàn)場離奇詭異破镰,居然都是意外死亡,警方通過查閱死者的電腦和手機压储,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門鲜漩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渠脉,你說我怎么就攤上這事宇整。” “怎么了芋膘?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵鳞青,是天一觀的道長。 經(jīng)常有香客問我为朋,道長臂拓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任习寸,我火速辦了婚禮胶惰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霞溪。我一直安慰自己孵滞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布鸯匹。 她就那樣靜靜地躺著坊饶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪殴蓬。 梳的紋絲不亂的頭發(fā)上匿级,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音,去河邊找鬼痘绎。 笑死津函,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的孤页。 我是一名探鬼主播尔苦,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼散庶!你這毒婦竟也來了蕉堰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤悲龟,失蹤者是張志新(化名)和其女友劉穎屋讶,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體须教,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡皿渗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轻腺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乐疆。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贬养,靈堂內(nèi)的尸體忽然破棺而出挤土,到底是詐尸還是另有隱情,我是刑警寧澤误算,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布仰美,位于F島的核電站,受9級特大地震影響儿礼,放射性物質(zhì)發(fā)生泄漏咖杂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一蚊夫、第九天 我趴在偏房一處隱蔽的房頂上張望诉字。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埃唯。三九已至,卻和暖如春鹰晨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工模蜡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漠趁,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓忍疾,卻偏偏與公主長得像闯传,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卤妒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

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