JS基礎(chǔ) -- while循環(huán)

/*
* 題:
* 向頁(yè)面輸出連續(xù)的數(shù)字
*
* 先不考慮連續(xù)輸出數(shù)字俭尖,首先考慮的是向頁(yè)面輸出的話,在js中應(yīng)該用哪個(gè)方法
* 要使用的是document.write()這個(gè)方法娜亿,這個(gè)在write()括號(hào)中輸出文字或數(shù)字后偷拔,會(huì)在html的<body>中輸出文字或數(shù)字
*
*/

        //  document.write(1);
        //  document.write(2);
                    //  效果自己創(chuàng)建一個(gè)項(xiàng)目去試試

/
/*
* 上面這樣寫(xiě)之后炭分,在html中所展現(xiàn)的是‘12’桃焕,這樣的話不是很好的辨認(rèn),也不是我們所需要的欠窒,我們所需要的是1占一行覆旭,
* 2占一行這樣排列退子,所以我們需要它們換行
* 那換行怎么做呢岖妄?
* js中‘\n’這個(gè)的確是換行型将,對(duì)于write(1)來(lái)說(shuō)這個(gè)‘\n’來(lái)說(shuō)是沒(méi)有任何作用的,因?yàn)檫@個(gè)對(duì)于string來(lái)說(shuō)可能是很有用的荐虐,
* 但write(1)可不行七兜,得使用
這個(gè)換行標(biāo)簽,因?yàn)閣rite(1)是向<body>內(nèi)輸出福扬,在body中是需要寫(xiě)標(biāo)簽的腕铸,
* 所以在換行這個(gè)上只用
,不能使用‘\n’铛碑。
* 格式請(qǐng)看下面:
*/

        //  document.write(1 + '<br>');
        //  document.write(2 + '<br>');
        //  document.write(3 + '<br>');
        //  ......

/
/*
* 接下來(lái)要考慮的是如何連續(xù)輸出狠裹??
* 對(duì)于連續(xù)輸出的想法是不斷的重復(fù)汽烦,這時(shí)會(huì)想到一個(gè)就是不斷復(fù)制粘貼 document.write(1 + '
');涛菠,這樣雖然能做到連續(xù)輸出,
* 但是撇吞,這樣寫(xiě)會(huì)不斷的手動(dòng)復(fù)制俗冻,粘貼完后還的保存、運(yùn)行牍颈,這樣不符合程序運(yùn)行的規(guī)則迄薄。
*
* 在js中有個(gè)語(yǔ)句可以解決這個(gè)問(wèn)題,這個(gè)語(yǔ)句就是 while循環(huán) 語(yǔ)句
* while語(yǔ)句:
* 通過(guò)循環(huán)語(yǔ)句可以反復(fù)的執(zhí)行一段代碼多次煮岁;
*
* while循環(huán):
* - 語(yǔ)法:
* while(條件表達(dá)式){
* 語(yǔ)句...
* }
* - while語(yǔ)句在執(zhí)行時(shí)讥蔽,先多條件表達(dá)式進(jìn)行求值判斷,如果值為true画机,則執(zhí)行循環(huán)體勤篮,循環(huán)體執(zhí)行完畢以后,繼續(xù)對(duì)表達(dá)式進(jìn)行判斷色罚,
* 如果為true碰缔,則繼續(xù)執(zhí)行循環(huán)體,以此類推戳护;
* 如果值為false金抡,則終止循環(huán)體;
* ********************************
* 這里需要注意一個(gè)寫(xiě)法腌且,這個(gè)寫(xiě)法會(huì)對(duì)我們的程序造成運(yùn)行負(fù)擔(dān)梗肝,也對(duì)用戶體驗(yàn)造成困擾,這種寫(xiě)法我們叫它為 死循環(huán)铺董;
* 就是下面這種寫(xiě)法巫击,如果自己想嘗試一下活不下心寫(xiě)了禀晓,那么恭喜你中大獎(jiǎng)了,你會(huì)發(fā)現(xiàn)這個(gè)工具一直彈出窗口坝锰。
* 記住要想測(cè)試不要用下面的方法粹懒,就算你把a(bǔ)lert(n++ +'
');這個(gè)注釋掉了,你會(huì)發(fā)現(xiàn)開(kāi)發(fā)工具會(huì)死掉顷级,無(wú)論你是重啟多少次電腦或者開(kāi)發(fā)工具也是一樣的
* 這時(shí)不要緊張凫乖,不要怕,這不是什么天大的事弓颈,天塌不下來(lái)帽芽,電腦系統(tǒng)也不會(huì)重裝,你可以使用以下幾個(gè)方法解決這個(gè)問(wèn)題:
*
* Mac系統(tǒng)下:
* 不論你使用了什么HTML開(kāi)發(fā)工具造成這樣的問(wèn)題翔冀,你只需要在電腦文件夾中找到你使用的開(kāi)發(fā)工作創(chuàng)建的項(xiàng)目文件夾导街,找到你使用的文件夾
* 然后,使用Xcode打開(kāi)造成問(wèn)題的html文件或者js文件纤子,打開(kāi)后把while代碼塊注釋掉搬瑰,再然后就是重新啟動(dòng)你的HTML開(kāi)發(fā)工具。
*
* win系統(tǒng)下:
* 不論你使用了什么HTML開(kāi)發(fā)工具造成這樣的問(wèn)題计福,你只需要在電腦文件夾中找到你使用的開(kāi)發(fā)工作創(chuàng)建的項(xiàng)目文件夾跌捆,找到你使用的文件夾
* 然后,系統(tǒng)帶有可以寫(xiě)腳本的軟件象颖,應(yīng)該是記事本具體自己去操作佩厚,只要能打開(kāi)造成問(wèn)題的html文件或者js文件,并且能修改和保存就行说订,
* 打開(kāi)后把while代碼塊注釋掉抄瓦,再然后就是重新啟動(dòng)你的HTML開(kāi)發(fā)工具。
*
* ps:他大爺?shù)奶绽洌瑒倓傋约涸趍ac系統(tǒng)下測(cè)試的時(shí)候钙姊,習(xí)慣性寫(xiě)了alert()結(jié)果程序卡死,開(kāi)發(fā)工具卡死埂伦,沒(méi)辦法只用Xcode打開(kāi)問(wèn)題的html文件煞额,然后注釋掉
* while代碼塊后,重啟開(kāi)發(fā)工具后才好沾谜;自己把自己惡心了一把膊毁。
*/

        // 死循環(huán):
        //var n = 1;
        //while (true){
        //   alert(n++ +'<br>');
        //}

/
/*
* 雖然上面注釋中已經(jīng)提示過(guò)不要這么寫(xiě),但是我相信一定有人不信這個(gè)邪非要這么寫(xiě)基跑。
* 可以婚温,不過(guò),得加一句代碼媳否,那就是 break栅螟;
*
* break:結(jié)束語(yǔ)句或叫退出語(yǔ)句
* 加上這個(gè)就不會(huì)出現(xiàn)這個(gè)問(wèn)題了荆秦,但是while只會(huì)執(zhí)行一次
*
*/

        //  var n = 1;
        //  while (true){
        //      alert(n++ +'<br>');
        //      break;
        //  }

/
/*
* 如果想執(zhí)行多次,又不想出現(xiàn)死循環(huán)力图,那該怎么寫(xiě)那步绸??搪哪?
* if判斷靡努,對(duì)坪圾,我們需要在while代碼塊中加一個(gè) if判斷就可以實(shí)現(xiàn)了,如下面代碼一樣:
*/

        //  var n = 0;
        //  while (true){
        //      document.write(n++ +'<br>');
        //      if (n == 10) {
        //          break;
        //      }
        //  }

/
/*
* 這樣就可以有效的避免死循環(huán)晓折,又能達(dá)到我們的要求執(zhí)行多次。
* 這樣寫(xiě)看起來(lái)挺好兽泄,但是漓概,感覺(jué)代碼有點(diǎn)多了,多的是if判斷病梢,那怎么才能不使用if判讀就行實(shí)現(xiàn)執(zhí)行多次哪胃珍?
* 首先,我們需要把while(true)中的true給去掉蜓陌,這時(shí)你會(huì)覺(jué)得去掉了if和true觅彰,那該怎么寫(xiě)?钮热?
* 接下來(lái)就開(kāi)始寫(xiě)了填抬,
* 第一,把true去掉
* 第二隧期,把if判斷條件復(fù)雜或者寫(xiě)到while表達(dá)式中飒责,也就是true原來(lái)的位置里
* 第三,把等等于換成大于等于
* 第四仆潮,把break去掉
* 這樣就可以精簡(jiǎn)掉幾句代碼
*/

        //1.創(chuàng)建并初始化一個(gè)變量
        var n = 1;
        //2.在循環(huán)中設(shè)置一個(gè)條件表達(dá)式
        while(n <= 10) {
            //3.定義一個(gè)更新表達(dá)式宏蛉,每次更新初始化變量
            document.write(n++ + '<br>');
            //這三個(gè)條件缺一不可
        }

/
/*
* 接下來(lái)在說(shuō)一個(gè)while的近親
*
* do...while循環(huán)
* - 語(yǔ)法
* do{
* 語(yǔ)句...
* }while(條件表達(dá)式)
*
* - 執(zhí)行流程:
* do...while語(yǔ)句在執(zhí)行時(shí),會(huì)先執(zhí)行do的循環(huán)體性置,當(dāng)do循環(huán)體執(zhí)行完畢以后拾并,再對(duì)while后的條件表達(dá)式進(jìn)行判斷
* 如果結(jié)果為true,則繼續(xù)執(zhí)行do循環(huán)體鹏浅,執(zhí)行完畢繼續(xù)對(duì)while后的條件表達(dá)式進(jìn)行判斷嗅义,以此類推。
* 如果結(jié)果為false篡石,則終止循環(huán)芥喇。
* 說(shuō)完了do循環(huán)的執(zhí)行流程,接下來(lái)說(shuō)一下while的執(zhí)行流程凰萨,然后在看一下do循環(huán)和while循環(huán)的區(qū)別在哪里继控?械馆?
* - while執(zhí)行流程:
* while (條件表達(dá)式)語(yǔ)句在執(zhí)行時(shí),會(huì)先對(duì)while后的條件表達(dá)式進(jìn)行判斷武通,如果結(jié)果為true霹崎。則執(zhí)行while后面的循環(huán)體,
* 直到結(jié)果為false時(shí)冶忱,循環(huán)體才會(huì)終止循環(huán)尾菇;
*
* - do與while的區(qū)別:
* do循環(huán)是先執(zhí)行循環(huán)體,然后執(zhí)行對(duì)while條件表達(dá)式進(jìn)行判斷囚枪,如果結(jié)果為true派诬,則繼續(xù)執(zhí)行do循環(huán)體。
* 還有要注意的是do循環(huán)是先執(zhí)行循環(huán)體链沼,然后才會(huì)對(duì)while的條件表達(dá)式進(jìn)行判斷默赂,也就是說(shuō)第一次執(zhí)行時(shí),不論while條件表達(dá)式的值是否為true括勺,
* 都會(huì)輸出do循環(huán)體內(nèi)的語(yǔ)句缆八。
*
* while循環(huán)是先對(duì)條件表達(dá)式進(jìn)行判斷,如果結(jié)果為true疾捍,才會(huì)繼續(xù)執(zhí)行循環(huán)體代碼塊奈辰。
* while循環(huán)在沒(méi)有對(duì)條件表達(dá)式進(jìn)行判斷時(shí),循環(huán)體代碼塊是不會(huì)先執(zhí)行的乱豆。
*
* - 總結(jié):總來(lái)說(shuō)前者是先執(zhí)行循環(huán)體代碼塊奖恰,然后才會(huì)對(duì)while的條件表達(dá)式進(jìn)行判斷,而while是先進(jìn)行對(duì)條件表達(dá)式判讀咙鞍,然后才是執(zhí)行循環(huán)體代碼塊房官。
*/

        var i = 1
        do {
            document.write(i++ + '- <br>');
        } while (i <= 10);

/
/*
* 最后再次提醒,在寫(xiě)循環(huán)時(shí)一定要避免死循環(huán)续滋,除非必要情況翰守,一定不要寫(xiě)。不然會(huì)對(duì)程序造成崩潰疲酌,內(nèi)存也會(huì)崩潰
*/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜡峰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子朗恳,更是在濱河造成了極大的恐慌湿颅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粥诫,死亡現(xiàn)場(chǎng)離奇詭異油航,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)怀浆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)谊囚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)怕享,“玉大人,你說(shuō)我怎么就攤上這事镰踏『睿” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵奠伪,是天一觀的道長(zhǎng)跌帐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)绊率,這世上最難降的妖魔是什么谨敛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮即舌,結(jié)果婚禮上佣盒,老公的妹妹穿的比我還像新娘挎袜。我一直安慰自己顽聂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布盯仪。 她就那樣靜靜地躺著紊搪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪全景。 梳的紋絲不亂的頭發(fā)上耀石,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音爸黄,去河邊找鬼滞伟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛炕贵,可吹牛的內(nèi)容都是我干的梆奈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼称开,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼亩钟!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鳖轰,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤清酥,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蕴侣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體焰轻,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年昆雀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辱志。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胧谈。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荸频,靈堂內(nèi)的尸體忽然破棺而出菱肖,到底是詐尸還是另有隱情,我是刑警寧澤旭从,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布稳强,位于F島的核電站,受9級(jí)特大地震影響和悦,放射性物質(zhì)發(fā)生泄漏退疫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一鸽素、第九天 我趴在偏房一處隱蔽的房頂上張望褒繁。 院中可真熱鬧,春花似錦馍忽、人聲如沸棒坏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)坝冕。三九已至,卻和暖如春瓦呼,著一層夾襖步出監(jiān)牢的瞬間喂窟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工央串, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磨澡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓质和,卻偏偏與公主長(zhǎng)得像稳摄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侦另,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)秩命,也就是一...
    悟名先生閱讀 4,149評(píng)論 0 13
  • 一、Java 簡(jiǎn)介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚(yú)_t_閱讀 4,194評(píng)論 1 44
  • 基礎(chǔ) .NET概述 參考:http://www.cnblogs.com/yplong/p/3279934.html...
    donite閱讀 1,623評(píng)論 0 8
  • 我是一個(gè)不認(rèn)真洗臉的人褒傅。晚上經(jīng)常有時(shí)因?yàn)樘燮瘢苯拥乖诖采虾艉舸笏雒婺ひ埠苌俚钔校鼊e說(shuō)保養(yǎng)了霹菊。以前,別人會(huì)對(duì)我...
    心潔xinjie閱讀 219評(píng)論 0 2
  • 這些年 我爬過(guò)很多座山 磨破了很多雙鞋 喝了幾萬(wàn)斤水 總會(huì)相信 翻過(guò)眼前的山 大海將會(huì)映入眼簾 可后來(lái)我還是失望了...
    燃燒已燼閱讀 146評(píng)論 0 2