分支结构

2021-05-16 23:58 电大课程JavaScript程序设计

分支结构是根据条件选择程序流程的结构。JavaScript有以下几种分支结构的语句:

图片

1简单if语句(单分支结构)

简单if语句只在条件为真时执行。其语法格式如下:

if(条件表达式){

    语句;

}

其执行过程如图2-1所示。如果条件表达式的值为true,则执行其后的语句,否则不执行任何语句。

图片

图2-1 单分支结构流程图

已知x,y两个整数,按从小到大排序:

<script type="text/javascript">

    var x, y;

    x = parseInt(prompt("输入x的值:","0"));

    y = parseInt(prompt("输入y的值:","0"));

    if(x > y){   

        t = x;  //交换两个数,必须借助第三个变量

        x = y;

        y = t;

    }

   console.log("x="+x+",y="+y);

</script>

注意:简单if语句的条件必须写在圆括号里面。语句可以是一条语句或多条语句。若语句为一条语句,则大括号可以省略,但建议都写上大括号,这样比较符合规范。

2if…else语句(双分支结构)

if…else语句的双分支结构根据条件的真假执行不同的语句。其语法格式如下:

if(布尔表达式) {

    语句1;

}

else {

    语句2;

}

其执行过程如图2-2所示。当布尔表达式的值为true时执行语句1,否则执行语句2。

图片

图2-2 双分支结构流程图

计算如下分段函数的值,输入x的值,输出y的值。

图片

该问题可以用单分支结构解决,有两种方法:

①方法一:

<script type="text/javascript">

 var x, y;

 x = parseFloat(prompt("输入x的值:","0"));

 y = x*x-1;

 if(x > 10){

  y = 2*x+1;

 }

 console.log("y="+y);

</script>

② 方法二:

<script type="text/javascript">

 var x, y;

 x = parseFloat(prompt("输入x的值:","0"));

 if(x < 10){

   y = x*x-1;

 }

 if(x >= 10){

   y = 2*x+1;

 }

 console.log("y="+y);

</script>

方法一判断1次,至少计算1次,有可能计算2次;方法二判断2次,计算1次。但是,如果用双分支结构,则程序只判断1次,执行1次,效率会更高。代码如下:

<script type="text/javascript">

 var x, y;

  x = parseFloat(prompt("输入x的值:","0"));

  if (x < 10) {

   y = x * x - 1;

  } else {

   y = 2 * x + 1;

  }  

  console.log("y="+y);

</script>

3嵌套if语句(嵌套结构)

嵌套if语句是指在if语句中又包含if语句。

在购买某物品时,按所花钱数给予不同的折扣,设x为所花钱数,d为折扣率。

图片

已知所花钱数为x,计算应付款数y。其程序段如下:

<script type="text/javascript">

   var x, y;

   x = parseFloat(prompt("输入x的值:","0"));

   if (x < 1000) {

       d = 0;

   } else {

      if (x < 2000) {

          d = 0.1;

      } else {

          d = 0.2;

      }

   }

   y = x - x * d;

   console.log("y="+y);

</script>

4多选择if语句

多选择if语句是一种特殊的嵌套形式。其语法格式如下:

if(布尔表达式1){

   语句1;

}else  if(布尔表达式2) {

   语句2;

}

... ...

else  if(布尔表达式n){ 

   语句n;

} else{

   语句n+1;

}

其执行过程如图2-3所示。程序根据条件判断执行相应分支,只执行第一个条件为真的语句,即执行了一个分支后,其余分支不再执行。]

图片

图2-3 多分支结构流程图

已知成绩mark,获得等级[优(90≤mark≤100),良(80≤mark<90),中(70≤mark<80),及格(60≤mark<70),不及格(mark<60)]。代码如下:

<script type="text/javascript">

 var mark, rating;

 mark = parseFloat(prompt("输入成绩(0-100):","0"));

 if (mark < 0 || mark > 100) {

  rating = "成绩数据错误!";

 } else if (mark < 60) {

  rating = "不及格";

 } else if (mark < 70) {

  rating = "及格";

 } else if (mark < 80) {

  rating = "中";

 } else if (mark < 90) {

  rating = "良";

 } else {

  rating = "优";

 }      

 console.log(rating);

</script>

5switch语句

switch语句用于根据表达式的值决定执行哪个分支。它的功能类似于if语句的多分支结构。其语法格式如下:

switch(表达式){

case 常量表达式1: 

   语句1;

   [break;]

case常量表达式2: 

   语句2;

   [break;]

......

case常量表达式n:

   语句n;

   [break;]

[default :

   语句n+1;

   [break;]]

}

其执行过程如图2-4所示。如果表达式的值等于常量表达式i的值,则执行语句i;如果表达式的值和n个常量表达式的值都不相等,则执行default后的语句。Break语句用来指出流程的出口点,流程执行到任意一个break语句,都将跳出switch语句,如果因某种情况没有使用break语句,那么程序将继续向下执行。

图片

图2-4 switch语句流程图

使用switch语句需要注意以下几个问题:

(1)switch语句之后括号内的表达式的结果可以是整数或字符串。

(2)在case语句后的各常量表达式的值不能相同,否则会出现错误。

(3)在case语句后,允许有多个语句,可以不用大括号括起来。

(4)每种情况执行完,一般使用break语句跳出switch结构,否则程序继续向下执行。

(5)case和default语句的先后顺序可以变动,不会影响程序执行结果,但把default语句放在最后是一种良好的编程习惯。

(6)default语句可以省略不用。


本文章转载自公众号:gh_8421aaa9f7fc

首页 - JavaScript 相关的更多文章: