2021-05-19

   JavaScript流程控制

1: JavaScript流程控制

什么是流程?

程序中的三种基本流程结构:

  1. 顺序结构

  2. 分支结构

  3. 循环结构

顺序结构:按照顺序一条一条的执行代码,从上到下。

分支结构:执行代码的时候,可以根据条件进行选择,条件越多对应的结果越多,分支也就越多。例如if…else…语句,switch语句

循环语句:用来重复不断的做一件事,for循环,while循环,do…while循环

条件语句

条件语句用于基于不同的条件来执行不同的动作。

通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。

在 JavaScript 中,我们可使用以下条件语句:

  • if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

  • if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

  • if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行

  • switch 语句 - 使用该语句来选择多个代码块之一来执行

1:if…else 语句

if…else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码,

1:if語句只有当指定条件为 true 时,该语句才会执行代码。

語法:

​
if (条件)
  {
  只有当条件为 true 时执行的代码
  }

​

注意:请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!

请注意,在这个语法中,没有 ..else..。您已经告诉浏览器只有在指定条件为 true 时才执行代码。

2:if....else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码。

語法:

if (条件)
  {
  当条件为 true 时执行的代码
  }
else
  {
  当条件不为 true 时执行的代码
  }

3:if....else if...else 语句来选择多个代码块之一来执行。

語法:

if (条件 1)
  {
  当条件 1 为 true 时执行的代码
  }
else if (条件 2)
  {
  当条件 2 为 true 时执行的代码
  }
else
  {
  当条件 1 和 条件 2 都不为 true 时执行的代码
  }

2:switch 語句

switch 语句用于基于不同的条件来执行不同的动作。

語法:

switch(n)
{
case 1:
  执行代码块 1
  break;
case 2:
  执行代码块 2
  break;
default:
  n 与 case 1 和 case 2 不同时执行的代码
}

工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

语法说明: switch必须赋初始值,值与每个case值匹配。满足执行该 case 后的所有语句,并用break语句来阻止运行下一个case。如所有case值都不匹配,执行default后的语句。

实例:显示今日的周名称

var day=new Date().getDay();
switch (day)
{
case 0:
  x="Today it's Sunday";
  break;
case 1:
  x="Today it's Monday";
  break;
case 2:
  x="Today it's Tuesday";
  break;
case 3:
  x="Today it's Wednesday";
  break;
case 4:
  x="Today it's Thursday";
  break;
case 5:
  x="Today it's Friday";
  break;
case 6:
  x="Today it's Saturday";
  break;
}

default 关键词

default 关键词来规定匹配不存在时做的事情:

循环语句:

循环可以将代码块执行指定的次数,如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。

不同类型的循环

JavaScript 支持不同类型的循环:

  • for - 循环代码块一定的次数

  • for/in - 循环遍历对象的属性

  • while - 当指定的条件为 true 时循环指定的代码块

  • do/while - 同样当指定的条件为 true 时循环指定的代码块

1For 循环

for循环:是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组,是在我们希望创建循环时常会用到的工具

for 语句是前测试循环,而且在进入循环之前,能够初始化变量,并定义循环后要执行的代码。

循环执行流程顺序,如下图所示

语法:

for (语句 1; 语句 2; 语句 3)
  {
  被执行的代码块
  }

 

(1)语句 1 在循环(代码块)开始前执行,通常我们会使用语句 1 初始化循环中所用的变量 (var i=0),可以在语句 1 中初始化任意(或者多个)值。

(2)语句 1是可选的,也就是说不使用语句 1 也可以。同时您还可以省略语句 1(比如在循环开始前已经设置了值时):

(1)语句 2 定义运行循环(代码块)的条件,通常语句 2 用于评估初始变量的条件。

(2)语句 2 同样是可选的,如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。

提示如果您省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。

  1. 语句 3 在循环(代码块)已被执行之后执行,通常语句 3 会增加初始变量的值。

  2. 语句 3 也是可选的。

(3)语句 3 有多种用法。增量可以是负数 (i--),或者更大 (i=i+15),语句 3 也可以省略(比如当循环内部有相应的代码时):

 

实例:循环5

for (var i=0; i<5; i++)
  {
  x=x + "The number is " + i + "<br>";
  }

2For/In 循环

for/in 语句:循环遍历对象的属性。

for 语句是严格的迭代语句,用于枚举对象的属性。

实例:

var person={fname:"John",lname:"Doe",age:25};

for (x in person)
  {
  txt=txt + person[x];
  }

 

1while 循环

只要指定条件为 true,循环就可以一直执行代码,会在指定条件为真时循环执行代码块。

While循环语句:是前测试循环。这意味着退出条件是在执行循环内部的代码之前计算的。因此,循环主体可能根本不被执行。

语法:

while (条件)
  {
  需要执行的代码
  }

提示:如果您忘记增加条件中所用变量的值,该循环永远不会结束。该可能导致浏览器崩溃。

2:do/while 循环

do/while 循环:是后测试循环,即退出条件在执行循环内部的代码之后计算。这意味着在计算表达式之前,至少会执行循环主体一次。

是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。

语法:

​
do
  {
  需要执行的代码
  }
while (条件);

​

1:break语句和continue语句

break 和 continue 语句对循环中的代码执行提供了更严格的控制。

break 和 continue 语句的不同之处

break 语句可以立即退出循环,阻止再次反复执行任何代码。

而 continue 语句只是退出当前循环,根据控制表达式还允许继续进行下一次循环。

例如:

var iNum = 0;

for (var i=1; i<10; i++) {
  if (i % 5 == 0) {
    break;
  }
  iNum++;
}
alert(iNum);

在以上代码中,for 循环从 1 到 10 迭代变量 i。在循环主体中,if 语句将(使用取模运算符)检查 i 的值是否能被 5 整除。如果能被 5 整除,将执行 break 语句。alert 显示 "4",即退出循环前执行循环的次数。

如果用 continue 语句代替这个例子中的 break 语句,结果将不同:

var iNum = 0;

for (var i=1; i<10; i++) {
  if (i % 5 == 0) {
    continue;
  }
  iNum++;
}
alert(iNum);

 

这里,alert 将显示 "8",即执行循环的次数。可能执行的循环总数为 9,不过当 i 的值为 5 时,将执行 continue 语句,会使循环跳过表达式 iNum++,返回循环开头。

JavaScript 标签:

break 语句和 continue 语句都可以与有标签的语句联合使用,返回代码中的特定位置。

如需标记 JavaScript 语句,请在语句之前加上冒号:

label:
语句

break 和 continue 语句仅仅是能够跳出代码块的语句

语法:

break labelname;

continue labelname;

continue 语句(带有或不带标签引用)只能用在循环中。

break 语句(不带标签引用),只能用在循环或 switch 中。

通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:

提示: break 和 continue 联合使用的有标签语句非常强大,不过过度使用它们会给调试代码带来麻烦。要确保使用的标签具有说明性,同时不要嵌套太多层循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值