JavaScript从入门到精通(微视频精编版)
上QQ阅读APP看书,第一时间看更新

3.3 跳转语句

视频讲解

假设在一个书架中寻找一本《新华字典》,如果在第二排第三个位置找到了这本书,那么就不需要去看第三排、第四排的书了。同样,在编写一个循环语句时,当循环还未结束就已经处理完了所有的任务,就没有必要让循环继续执行下去,继续执行下去既浪费时间又浪费内存资源。在JavaScript中提供了两种用来控制循环的跳转语句:continue语句和break语句。

3.3.1 continue语句

continue语句用于跳过本次循环,并开始下一次循环。其语法格式如下:

    continue;

注意

continue语句只能应用在while、for、do…while语句中。

例如,在for语句中通过continue语句输出10以内不包括5的自然数的代码如下:

    01  for(i=1;i<=10;i++){
    02      if(i==5) continue;       //如果i等于5就跳过本次循环
    03      document.write(i+"\n");  //输出变量i的值
    04  }

运行结果为:

    1 2 3 4 6 7 8 9 10

说明

当使用continue语句跳过本次循环后,如果循环条件的结果为false,则退出循环,否则继续下一次循环。

【例3.10】万达影城7号影厅的观众席有4排,每排有10个座位。其中,1排6座和3排9座已经出售,在页面中输出该影厅当前的座位图。关键代码如下:(实例位置:资源包\源码\03\3.10)

    01  <script type="text/javascript">
    02  document.write("<table align='center'>");                //输出表格标签
    03  for(var i = 1; i <= 4; i++){                             //定义外层for循环语句
    04     document.write("<tr height=70>");                     //输出表格行标签
    05     for(var j = 1; j <= 10; j++){                         //定义内层for循环语句
    06        if(i == 1 && j == 6){                              //如果当前是1排6座
    07           //将座位标记为“已售”
    08           document.write("<td align='center' width=80 background=yes.png>已售</td>");
    09           continue;                                       //应用continue语句跳过本次循环
    10        }
    11        if(i == 3 && j == 9){                              //如果当前是3排9座
    12           //将座位标记为“已售”
    13           document.write("<td align='center' width=80 background=yes.png>已售</td>");
    14           continue;                                       //应用continue语句跳过本次循环
    15        }
    16    //输出排号和座位号
    17    document.write("<td align='center' width=80 background=no.png>"+i+"排"+j+"座"+"</td>");
    18     }
    19     document.write("</tr>");                              //输出表格行结束标签
    20  }
    21  document.write("</table>");                              //输出表格结束标签
    22  </script>

运行本实例,结果如图3.18所示。

图3.18 输出影厅当前座位图

3.3.2 break语句

在3.1.2节的switch语句中已经用到了break语句,当程序执行到break语句时就会跳出switch语句。除了switch语句之外,在循环语句中也经常会用到break语句。

在循环语句中,break语句用于跳出循环。break语句的语法格式如下:

    break;

说明

break语句通常用在for、while、do…while或switch语句中。

例如,在for语句中通过break语句跳出循环的代码如下:

    01  for(i=1;i<=10;i++){
    02      if(i==5) break;          //如果i等于5就跳出整个循环
    03      document.write(i+"\n");  //输出变量i的值
    04  }

运行结果为:

    1 2 3 4

注意

在嵌套的循环语句中,break语句只能跳出当前这一层的循环语句,而不是跳出所有的循环语句。

例如,应用break语句跳出当前循环的代码如下:

    01  var i,j;                    //声明变量
    02  for(i=1;i<=3;i++){          //定义外层循环语句
    03     document.write(i+"\n");  //输出变量i的值
    04     for(j=1;j<=3;j++){       //定义内层循环语句
    05        if(j==2)              //如果变量j的值等于2
    06           break;             //跳出内层循环
    07        document.write(j);    //输出变量j的值
    08     }
    09     document.write("<br>");  //输出换行标记
    10  }

运行结果为:

    1 1
    2 1
    3 1

由运行结果可以看出,外层for循环语句一共执行了3次(输出1、2、3),而内层循环语句在每次外层循环里只执行了一次(只输出1)。