for循環(huán)、求成績、雙重for循環(huán)、各種打印星星、九九乘法表、while循環(huán)、do while循環(huán)、continue、break

1.1循環(huán)

循環(huán)的目的:在實際問題中,有許多具有規(guī)律性的重復(fù)操作,因此在程序中要完成這類操作就需要重復(fù)執(zhí)行某些語句
js中循環(huán)主要有三種類型的循環(huán)語句:

  • for循環(huán)
  • while循環(huán)
  • do....while循環(huán)

1.2for循環(huán)

在程序中,一組被重復(fù)執(zhí)行的語句被稱之為循環(huán)體,能否繼續(xù)重復(fù)執(zhí)行,取決于循環(huán)的最終條件。由循環(huán)體及循環(huán)的終止條件組成的語句,被稱之為循環(huán)語句。

   // 1. for 重復(fù)執(zhí)行某些代碼, 通常跟計數(shù)有關(guān)系
        // 2. for 語法結(jié)構(gòu)
        // for (初始化變量; 條件表達式; 操作表達式) {
        //     // 循環(huán)體
        // }
        // 3. 初始化變量 就是用var 聲明的一個普通變量, 通常用于作為計數(shù)器使用 
        // 4. 條件表達式 就是用來決定每一次循環(huán)是否繼續(xù)執(zhí)行 就是終止的條件
        // 5. 操作表達式 是每次循環(huán)最后執(zhí)行的代碼 經(jīng)常用于我們計數(shù)器變量進行更新(遞增或者遞減)
        // 6. 代碼體驗 我們重復(fù)打印100局 你好
        for (var i = 1; i <= 100; i++) {
            console.log('你好嗎');
        }

for 循環(huán)的執(zhí)行過程

  1. 首先執(zhí)行里面的計數(shù)器變量 var i = 1 .但是這句話在for 里面只執(zhí)行一次 index
  2. 去 i <= 100 來判斷是否滿足條件, 如果滿足條件 就去執(zhí)行 循環(huán)體 不滿足條件退出循環(huán)
  3. 最后去執(zhí)行 i++ i++是單獨寫的代碼 遞增 第一輪結(jié)束
  4. 接著去執(zhí)行 i <= 100 如果滿足條件 就去執(zhí)行 循環(huán)體 不滿足條件退出循環(huán) 第二輪
  // for 循環(huán)可以執(zhí)行相同的代碼
        for (var i = 1; i <= 10; i++) {
            console.log('媳婦我錯了');

        }
        // 我們可以讓用戶控制輸出的次數(shù)
        var num = prompt('請您輸入次數(shù)');
        for (var i = 1; i <= num; i++) {
            console.log('媳婦我錯了');

        }
  • for 循環(huán)可以重復(fù)執(zhí)行不同的代碼 因為我們有計數(shù)器變量 i 的存在 i每次循環(huán)值都會變化
    我們想要輸出1個人 1~100歲
        for (var i = 1; i <= 100; i++) {
            if (i == 1) {
                console.log('這個人今年1歲了,他出生了');
            } else if (i == 100) {
                console.log('這個人今年100歲了,他死了');
            } else {
                console.log('這個人今年' + i + '歲了');
            }

  • for 循環(huán)重復(fù)執(zhí)行某些操作 比如說我們做了100次加法運算
    求 1~100 之間的整數(shù)累加和
    需要循環(huán)100次,我們需要一個計數(shù)器 i
    我們需要一個存儲結(jié)果的變量 sum ,但是初始值一定是 0
    核心算法:1 + 2 + 3 + 4 .... ,sum = sum + i;
  var sum = 0; // 求和 的變量
        for (var i = 1; i <= 100; i++) {
            // sum = sum + i;
            sum += i;
        }
        console.log(sum);
1.2.1for循環(huán)案例
 // 1. 求1-100之間所有數(shù)的平均值   需要一個 sum 和的變量 還需要一個平均值 average 變量
        var sum = 0;
        var average = 0;
        for (var i = 1; i <= 100; i++) {
            sum = sum + i;
        }
        average = sum / 100;
        console.log(average);

        // 2. 求1-100之間所有偶數(shù)和奇數(shù)的和   我們需要一個偶數(shù)的和變量 even  還需要一個奇數(shù) odd
        var even = 0;
        var odd = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                even = even + i;
            } else {
                odd = odd + i;
            }
        }
        console.log('1~100 之間所有的偶數(shù)和是' + even);
        console.log('1~100 之間所有的奇數(shù)和是' + odd);

        // 3. 求1-100之間所有能被3整除的數(shù)字的和   
        var result = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 3 == 0) {
                // result = result + i;
                result += i;
            }
        }
        console.log('1~100之間能夠被3整數(shù)的數(shù)字的和是:' + result);
1.2.2求學(xué)生成績案例

// 彈出輸入框輸入總的班級人數(shù)(num)
// 依次輸入學(xué)生的成績( 保存起來 score), 此時我們需要用到
// for 循環(huán), 彈出的次數(shù)跟班級總?cè)藬?shù)有關(guān)系 條件表達式 i <= num
// 進行業(yè)務(wù)處理: 計算成績。 先求總成績( sum), 之后求平均成績( average)
// 彈出結(jié)果

 var num = prompt('請輸入班級的總?cè)藬?shù):'); // num 總的班級人數(shù)
        var sum = 0; // 求和的變量
        var average = 0; // 求平均值的變量
        for (var i = 1; i <= num; i++) {
            var score = prompt('請您輸入第' + i + '個學(xué)生成績');
            // 因為從prompt取過來的數(shù)據(jù)是 字符串型的需要轉(zhuǎn)換為數(shù)字型
            sum = sum + parseFloat(score);
        }
        average = sum / num;
        alert('班級總的成績是' + sum);
        alert('班級平均分是:' + average);
1.2.3一行打印五個星星
 // 一行打印五個星星 
        // console.log('★★★★★');
        // for (var i = 1; i <= 5; i++) {
        //     console.log('★');

        // }
        // var str = '';
        // for (var i = 1; i <= 5; i++) {
        //     str = str + '★';
        // }
        // console.log(str);
        var num = prompt('請輸入星星的個數(shù)');
        var str = '';
        for (var i = 1; i <= num; i++) {
            str = str + '★'
        }
        console.log(str);

1.3雙重for循環(huán)

  1. 雙重for循環(huán) 語法結(jié)構(gòu)
    for (外層的初始化變量; 外層的條件表達式; 外層的操作表達式) {
    for (里層的初始化變量; 里層的條件表達式; 里層的操作表達式) {
    執(zhí)行語句; }
    }
  2. 我們可以把里面的循環(huán)看做是外層循環(huán)的語句
  3. 外層循環(huán)循環(huán)一次, 里面的循環(huán)執(zhí)行全部
  4. 代碼驗證
        for (var i = 1; i <= 3; i++) {
            console.log('這是外層循環(huán)第' + i + '次');
            for (var j = 1; j <= 3; j++) {
                console.log('這是里層的循環(huán)第' + j + '次');
            }
        }
1.3.1打印五行五列星星
// 打印五行五列星星
        var str = '';
        for (var i = 1; i <= 5; i++) { // 外層循環(huán)負(fù)責(zé)打印五行
            for (var j = 1; j <= 5; j++) { // 里層循環(huán)負(fù)責(zé)一行打印五個星星
                str = str + '★';
            }
            // 如果一行打印完畢5個星星就要另起一行 加 \n
            str = str + '\n';
        }
        console.log(str);
1.3.2打印n行n列星星
// 打印n行n列的星星
        var rows = prompt('請您輸入行數(shù):');
        var cols = prompt('請您輸入列數(shù):');
        var str = '';
        for (var i = 1; i <= rows; i++) {
            for (var j = 1; j <= cols; j++) {
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);
1.3.2打印倒三角型
 // 打印倒三角形案例
        var str = '';
        for (var i = 1; i <= 10; i++) { // 外層循環(huán)控制行數(shù)
            for (var j = i; j <= 10; j++) { // 里層循環(huán)打印的個數(shù)不一樣  j = i
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);
1.3.3打印九九乘法表

九九乘法表

  • 一共有9行,但是每行的個數(shù)不一樣,因此需要用到雙重 for 循環(huán)
  • 外層的 for 循環(huán)控制行數(shù) i ,循環(huán)9次 ,可以打印 9 行
  • 內(nèi)層的 for 循環(huán)控制每行公式 j
  • 核心算法:每一行 公式的個數(shù)正好和行數(shù)一致, j <= i;
  • 每行打印完畢,都需要重新?lián)Q一行
 var str = '';
        for (var i = 1; i <= 9; i++) { // 外層循環(huán)控制行數(shù)
            for (var j = 1; j <= i; j++) { // 里層循環(huán)控制每一行的個數(shù)  j <= i
                // 1 × 2 = 2
                // str = str + '★';
                str += j + '×' + i + '=' + i * j + '\t';
            }
            str += '\n';
        }
        console.log(str);

1.4while循環(huán)

  // 1. while 循環(huán)語法結(jié)構(gòu)  while 當(dāng)...的時候
        // while (條件表達式) {
        //     // 循環(huán)體
        // }
        // 2. 執(zhí)行思路  當(dāng)條件表達式結(jié)果為true 則執(zhí)行循環(huán)體 否則 退出循環(huán)
        // 3. 代碼驗證
        var num = 1;
        while (num <= 100) {
            console.log('好啊有');
            num++;
        }
        // 4. 里面應(yīng)該也有計數(shù)器 初始化變量
        // 5. 里面應(yīng)該也有操作表達式  完成計數(shù)器的更新 防止死循環(huán)
1.4.1while循環(huán)案例
// 1. 打印人的一生,從1歲到100歲
        var i = 1;
        while (i <= 100) {
            console.log('這個人今年' + i + '歲了');
            i++;
        }
        // 2. 計算 1 ~ 100 之間所有整數(shù)的和
        var sum = 0;
        var j = 1;
        while (j <= 100) {
            sum += j;
            j++
        }
        console.log(sum);

        // 3. 彈出一個提示框, 你愛我嗎?  如果輸入我愛你,就提示結(jié)束,否則,一直詢問。
        var message = prompt('你愛我嗎?');
        while (message !== '我愛你') {
            message = prompt('你愛我嗎?');
        }
        alert('我也愛你啊!');

1.5do while循環(huán)

 // 1.do while 循環(huán) 語法結(jié)構(gòu)
        do {
            // 循環(huán)體
        } while (條件表達式)
        // 2.  執(zhí)行思路 跟while不同的地方在于 do while 先執(zhí)行一次循環(huán)體 在判斷條件 如果條件表達式結(jié)果為真,則繼續(xù)執(zhí)行循環(huán)體,否則退出循環(huán)
        // 3. 代碼驗證
        var i = 1;
        do {
            console.log('how are you?');
            i++;
        } while (i <= 100)
        // 4. 我們的do while 循環(huán)體至少執(zhí)行一次
1.4.1do while循環(huán)案例
  // 1. 打印人的一生,從1歲到100歲
        var i = 1;
        do {
            console.log('這個人今年' + i + '歲了');
            i++;
        } while (i <= 100)
        // 2. 計算 1 ~ 100 之間所有整數(shù)的和
        var sum = 0;
        var j = 1;
        do {
            sum += j;
            j++;
        } while (j <= 100)
        console.log(sum);

        // 3. 彈出一個提示框, 你愛我嗎?  如果輸入我愛你,就提示結(jié)束,否則,一直詢問。
        do {
            var message = prompt('你愛我嗎?');
        } while (message !== '我愛你')
        alert('我也愛你啊');

1.6continue

continue關(guān)鍵字,退出本次循環(huán)(當(dāng)前次的循環(huán))繼續(xù)執(zhí)行剩余次數(shù)循環(huán)

   for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                continue; // 只要遇見 continue就退出本次循環(huán) 直接跳到 i++
            }
            console.log('我正在吃第' + i + '個包子');

        }
        // 1. 求1~100 之間, 除了能被7整除之外的整數(shù)和 
        var sum = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                continue;
            }
            sum += i;
        }
        console.log(sum);

1.7break

退出整個循環(huán)

 for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                break;
            }
            console.log('我正在吃第' + i + '個包子');

        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,627評論 2 380