JavaScript 04 (do...while循环/for循环/break/continue)

js循环,js循环嵌套,js do...while循环,js的for循环,js中的break,js中的continue

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

欢迎大家去我的个人技术博客看看,点赞收藏注册的都是好人哦~

https://xiaowu.xyz

目录:

一、do..while 循环

二、for循环

三、break & continue


有兴趣可以来小五的博客逛逛哦~

xiaowu.xyz

一、do..while 循环

语法格式:

  do

  {

      语句;

    }while(表达式);

    注意:

      1.最后的分号不要忘记。

      2.循环条件中使用的变量需要经过初始化。

      3.循环体中,应有结束循环的条件,否则会造成死循环。

while和do while的区别

   do...while和while循环的差别不是很大,主要是就是while循环会先判断初始条件,只有成立才会执行。但是do...while会先执行一次,再进行判断,如果不满足才停下来。

1、执行顺序的问题,while是先判断,do while,先执行循环体的代码,再判断。当条件第一次就不满足时,更能体现出区别。

2、在开发中,while用的情况多。如果while处理逻辑比较别扭时,就需要使用do while。

二、for循环


for循环是用的最多的循环,所以for循环一定要牢记。

for(表达式1;表达式2;表达式3)

 {

          语句;

  }

  执行过程:

  1.先求解表达式1(只求一次);

  2.求解表达式2,若其值为真(非0),

    则执行for语句中指定的内嵌语句,

    然后求解表达式3;再求解表达式2,若为假,

    则结束循环,执行for循环外的语句。



for循环三个表达式的说明:

三个表达式都可以省略,但分号不能省略,省略后都可改写。

3个表达式都省略:例: for(;;);这是个死循环

循环的嵌套

一个循环语句内又包含另一个完整的循环语句。

3中循环可以互相嵌套,下面几种都是合法的形式。


其实循环没有什么好讲的,理清楚思路和逻辑之后,就需要大量的练习来培养这种程序的思维。我知道这很难,当年我坐在网吧通宵敲c的时候也很难,这难道不是我们必须克服的难关吗?

利用循环嵌套:

完成下面的示例

这里我统一使用for循环写,有兴趣的小伙子们可以改成while循环和do...while循环

利用循环嵌套 打印四行 *,每行10个

********** 

**********

**********

**********

for(var i = 0;i < 4; i++){

    for(var j = 0; j < 10; j++){

        document.write("*");

    }

    document.write("<br />");

}


利用循环嵌套 打印直角三角形

*

**

***

****

*****

******

*******

for(var i = 0; i < 7;i++){

    for(var j = 0; j<=i;j++){ 

        document.write("*");

    }

    document.write("<br />");

}

利用循环嵌套 打印五行小五  

外层循环控制 总共打印多少行

内层循环控制 每行打印多少个 (小 / 五)

小小小小小五

小小小小五五

小小小五五五

小小五五五五

小五五五五五

for(var i = 0;i<6;i++){

    for(var j = 0; j<6-i;j++){

        document.write("小");

    }

    for(var m = 0; m<=i;m++){

        document.write("五");

    }

     document.write("<br>");

}


利用循环打印等腰三角形

外层循环控制 总共打印多少行

内层循环控制 每行打印多少个 (小 / 五) (这里的小可以换成&emsp;)

小小小小小五

小小小小五五五

小小小五五五五五

小小五五五五五五五

小五五五五五五五五五

五五五五五五五五五五五



var n = 6

    for (var j=0;j<n;j++) {


        for (var i = 0;i < n - j;i++) {

            document.write("小");


        }

        for (var x = 0;x <2*j+1;x++){

            document.write("五");

        }

        document.write("<br>");

    }


利用循环打印菱形

外层循环控制 总共打印多少行

内层循环控制 每行打印多少个 (小 / 五) (这里的小可以换成&emsp;)

小小小小小五

小小小小五五五

小小小五五五五五

小小五五五五五五五

小五五五五五五五五五

五五五五五五五五五五五

小五五五五五五五五五

小小五五五五五五五

小小小五五五五五

小小小小五五五

小小小小小五


var n = 6;

for (var j=0;j<n;j++) {


    for (var i = 0;i < n - j-1;i++) {

        document.write("小");


    }


    for (var x = 0;x <2*j+1;x++){

        document.write("五");

    }

    document.write("<br>");

}

var n = 6-1;

for (var j=n;j>0;j--) {


    for (var i = 0;i < n - j+1;i++) {

        document.write("小");


    }


    for (var x = 0;x <2*j-1;x++){

        document.write("五");

    }

    document.write("<br>");

}


利用循环打印空心菱形

外层循环控制 总共打印多少行

内层循环控制 每行打印多少个 (&emsp; / 五) 

     

    五 五

   五   五

  五     五

 五       五

五         五

 五       五

  五     五

   五   五

    五 五

     五


var n = 6;

for (var j=0;j<n;j++) {


    for (var i = 0;i < n - j-1;i++) {

        document.write("&emsp;");


    }


    for (var x = 0;x <2*j+1;x++){

        if(x>0 && x<2*j){

            document.write("&emsp;");

        }else{

            document.write("五");

        }


    }

    document.write("<br>");

}

var n = 6-1;

for (var j=n;j>0;j--) {


    for (var i = 0;i < n - j+1;i++) {

        document.write("&emsp;");


    }


    for (var x = 0;x <2*j-1;x++){

      if(x>0 && x< 2*j-2){

            document.write("&emsp;");

        }else{

            document.write("五");

        }

    }

    document.write("<br>");

}


for循环是我们用的最多的循环,循环没有捷径,只能通过大量的练习来进行学习和理解,学会循环之后,我们已经可以完成很多事情了。


最后:用我们最经典的乘法口诀表来结束我们的循环练习

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>小五技术blog-打印隔行变色的乘法口诀表格</title>

    <style>

        * {

            padding: 0;

            margin: 0;

        }

        table {

            width: 1200px;

            height: 600px;

            border-collapse: collapse;

            table-layout: fixed;

        }

        table,

        td {

            border: 1px solid #000;

        }

        td {

            text-indent: 10px;

        }

    </style>

</head>

<body>

</body>

<script>

    // 字符串中  双引号不能嵌套双引号  单引号不能嵌套单引号

    document.write("<table>")

    for (var i = 1; i <= 9; i++) {

        // document.write(i + ":");

        // 隔行换色

        if (i % 2 == 1) {

            document.write('<tr style="background: grey">');

        } else {

            document.write("<tr style='background: pink'>");

        }

        for (var j = 1; j <= i; j++) {

            document.write("<td>");

            document.write(j + "x" + i + "=" + i * j + "")

            document.write("</td>");

        }

        document.write("</tr>");

    }

    document.write("<table>")

</script>

</html>


三、break & continue

break语句的功能:

    1、在switch语句中使流程跳出switch结构。

    2、在循环语句中使流程跳出当前循环。(一般用在循环嵌套if语句,当满足条件就跳出当前循环)

注意:

如果已执行break语句,就不会执行循环体中位于break后的语句。

在多层循环中,一个break语句只向外跳一层。


continue语句的功能:

只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。

注意:

continue语句只能用在循环里。

对于 while 和 do-while 循环,continue 语句执行之后的动作是条件判断;对于 for 循环,随后的动作是变量更新。


示例:

break;

    // 1-100 第一个能整除 2, 3, 4

    // break

    // 在循环中使用  表示跳出当前循环(当前会立即循环结束)

    // 注意

    // 1. 写在 break  之后的语句不会在执行

    // 2. 在多层循环中  一个break只跳一层

    for (var j = 1; j <= 10; j++) {

        for (var i = 1; i <= 100; i++) {  // i

            if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0) {

                document.write(i + "<br>");

                break;

            }

        }

    }


示例:

continue;

//打印1-100的偶数

    for (var i = 1; i <= 100; i++) {  // i

        if (i % 2 == 1) {

            continue;

        }

        document.write(i + "<br>");

    }


使用假设法来判断一个数是不是质数

// 判断一个数是不是质数。(除了1和它本身以外不再有其他的除数整除。)

    // 2 3 5 7 11 13 17 23 29 37

    //  11  1 - 11  除了    1和11      没有其他数能整除它  => 素数/质数

    //  9  1 - 9    1  3  9  除了 1和9  还有其他数能整除它  => 合数

    var num = prompt("请输入一个数字");

    var flag = true;  // 假设 num是一个素数  

    for (var i = 2; i < num; i++) {

        if (num % i == 0) {  // 如果num能被 其他数(除了1和它本身以外)整数  肯定是合数  推翻假设

            flag = false;

            break;

        }

    }

    if (flag == true) {

        document.write(num + "是素数/质数;");

    } else {

        document.write(num + "是合数;");

    } 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342