js中的流程控制语句

js中的流程控制语句

js中的语句结构分为如下:

  1. 顺序结构

    • 前面学的所有的语句,都是顺序结构,他们是按顺序从上往下依次执行的,每一行代码都会执行。
  2. 分支结构

    • if

    • if…else

  3. 选择结构

    • if(){} else if(){} else if(){}…else{}

    • switch(){case:}

  4. 循环结构

    • while

    • do-while

    • for


if语句

语法

if(判断条件){  
   要执行的代码;
}

说明

 1. if小括号中的判断条件一般为boolean类型的值或是关系表达式或是逻辑表达式
 2. 如果是其它的数据值,则会默认的调用Boolean()对其它数据值进行转换,之后再进行判断
 3. 大括号里面是条件成立时要执行的代码

执行过程

首先程序运行到if处的小括号处,判断条件是否成立,如果条件成立,也就是返回true,则进入大括号里面,执行里面的代码,如果判断条件不成立,也就是返回false,则跳过大括号,执行后面的代码。

示例:

// 1.让用户输入年龄,如果输入的年龄大于18(含)岁,则给用户显示你已经成年了.
var age = +prompt("请输入您的年龄");
if(age>=18){
   alert("你已经是个成年人了...");
}

if-else语句

语法

if(判断条件){  
   要执行的代码;
}else{
   要执行的代码;
}

说明

 1. if小括号中的判断条件一般为boolean类型的值或是关系表达式或是逻辑表达式
 2. 如果是其它的数据值,则会默认的调用Boolean()对其它数据值进行隐式转换之后再判断
 3. 大括号里面是条件成立时要执行的代码  else大括号里面是条件不成立时要执行的代码

执行过程

首先程序运行到if处的小括号处,判断条件是否成立,如果条件成立,也就是返回true,则进入大括号里面,执行 里面的代码,如果判断条件不成立,也就是返回false,则执行else大括号里面的代码,执行完毕跳出当前结构。

与if的区别

if只能判断一种情况 if-else可以判断两种情况

示例:

// 小红买了一筐鸡蛋,如果坏蛋少于5个,他就吃掉,否则他就去退货
var count = +prompt("请输入坏蛋的个数");
if(count<5){
    console.log("忍了吧,自己留着吃了吧...");
}else {
    console.log("坚决不能忍,退货...");
}

if-else if-else if…结构

语法

if(判断条件){ 
    要执行的代码;
}else if(判断条件){
    要执行的代码;
}else if(判断条件){
    要执行的代码;
}...
else {
    要执行的代码;
}

说明

1. ifelse if小括号中的判断条件一般为boolean类型的值或是关系表达式或是逻辑表达式
2. 如果是其它的数据值,则会默认的调用Boolean()对其它数据值进行隐式转换之后再判断
3. 大括号里面是条件成立时要执行的代码

执行过程

首先程序运行到if处的小括号处,判断条件是否成立,如果条件成立,也就是返回true,则进入大括里面执行里面的代码,如果条件不成立也就是返回false,则依次的进入else if小括号里面,判断条件是否成立,如果成立,也就是返回true,则进入对应的else if里面的大括号里面,执行里面的代码,如果以上所有的判断条件都不成立,也就是都返回false,则要看是否有else,如果有,则进入else里面,执行里面的代码,如果没有,则跳出当前结构。

示例:

// 对学员的结业考试成绩评测
           成绩>=90A      
        90>成绩>=80B     
        80>成绩>=70C
        70>成绩>=60D
           成绩<60E

var score = +prompt('请输入某学员的成绩评测...');
if(score>=90){
    console.log("A");
}else if(score>=80){
    console.log("B");
}else if(score>=70){
    console.log("C");
}else if(score>=60){
    console.log("D");
}else {
    console.log("E");
}

switch-case

语法

switch(){   
    case1:
     要执行的代码;
    break;
    case2:
     要执行的代码;
    break;
    case3:
     要执行的代码;
    break;
    ...
    default:
     要执行的代码; 
    break;
}

说明

1.switch语句的小括号中一般是一个确切的数据值
2.switch语句小括号中值的数据类型和case中值的数据类型一定要一致,使用严格判断===

执行过程

当程序执行到switch处的小括号,先计算里面的值,拿着计算后的定值,依次和case中的值进行匹配,如果匹配成功,则执行此case里面的代码,执行完毕之后,遇到break,则跳出当前结构,如果匹配都不成功,则要看当前结构当中有没有default,如果有的话,则进入到dafault处执行里面的代码,如果没有,则跳出当前结构,执行后面的代码。

示例:

先使用switch-case实现如下练习,再使用if-else  if实现一遍,比较两种方式的优劣:
李四的年终工作评定,如果定为A,则工资涨500,如果定为B,则工资涨200,如果定为C,工资不变,
如果定为D级工资降200,如果定为E级工资降500.
设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.

    var salary = 5000;
    var level = prompt("请输入李四今年的工作评级,A--E表示");
    var flag = true;  //定义一个标识
    switch(level){
      case "A":
        salary += 500; // salary = salary + 500;
        break;
      case "B":
        salary += 200;
        break;
      case "C":
        salary += 0;
        break;
      case "D":
        salary -= 200;
        break;
      case "E":
        salary -= 500;
        break;
      default:
        flag = false;  //如果要是输入了非法值的话,要将flag的值重新赋值
        alert("您输入的值不正确,应该输入A--E之间的值,程序中止...");
        break;
    }
    if(flag){  //flag为true的情况才会输出内部的代码
      console.log("李四的工作评级为"+level+", 来年的工资为:"+salary);
    }

while循环

循环:所谓循环就是重复的做同一件事情

语法

while(循环条件){ 
    循环体; // 要执行的代码
}

说明

1. while小括号中的判断条件一般为boolean类型的值或是关系表达式或是逻辑表达式;
2. 如果是其它的数据值,则会默认的调用Boolean()对其它数据值进行隐式转换之后再判断;
3. 大括号里面的循环体就是是条件成立时要执行的代码;

执行过程

程序运行到while处的小括号处,首先判断循环条件是否成立,如果成立,也就是返回true,则进入大括号里面执行里面的循环体,执行完毕之后,再次回到小括号处,判断循环条件是否成立,如果成立,也就是返回true,继续执行大括号里面的代码,如果不成立,也就是返回false,则跳出当前循环结构。 只要是循环,总会有一行代码可以改变循环条件,如果没有改变循环条件的代码,这样的循环叫做死循环。

示例:

// 打印输出1--5之间的每个数的值
var i = 1;
while(i<=5){
   console.log(i);
   i++;
}

do-while循环

语法

do{
  循环体;
}while(循环条件)

说明

1. while小括号中的判断条件一般为boolean类型的值或是关系表达式或是逻辑表达式;
2. 如果是其它的数据值,则会默认的调用Boolean()对其它数据值进行隐式转换之后再判断;
3. 大括号里面的循环体就是是条件成立时要执行的代码;

执行过程

当程序从上往下运行到do处,先进入大括号里面,执行里面的循环体,执行完毕之后,再到while处的小括号处,判断循环条件是否成立,如果成立,则再次进入do里面的大括号,执行里面的循环体,如果条件不成立,则跳出do-while循环,循环结束,再执行循环后面的代码。

与while的区别

1.语法结构不同
2.初始值不满足循环条件时:
    while循环一次都不执行
    do-while循环会执行一次

示例:

明天小兰就要登台演出了,老师说再把明天的演出的歌曲唱一遍,如果满意,小兰就可以回家了.
否则就需要再练习一遍,直到老师满意为止.(y/n)

var i = 0;
  do{
    var answer = prompt('小兰把明天的歌曲演唱了一遍,问老师你满意么? y/n');
  }while(answer !="y")

  console.log("老师已经满意了,可以放学回家了...");

for循环

语法

for(表达式1;表达式2;表达式3){
   循环体;
}

说明

1. for循环其实就是 while循环的一个变体;
2. for多用于已知次数的循环;
3. 大括号里面的循环体就是是条件成立时要执行的代码;

执行过程

程序从上往下运行到for处,先进入小括号,执行表达式1,声明变量并赋初值,然后执行表达式2,判断循环条件是否成立,如果条件成立,也就是返回true,则进入大括号里面执行循环体,执行完毕之后,再执行表达式3,改变循环条件,然后再执行表达式2,判断循环条件是否成立,如果成立,也就是返回true,则再次进入大括号执行里面的循环体,如果条件不成立,也就是返回false,则跳出当前循环结构,循环结束,再执行循环后面的代码。

示例:

  // 连续输入6次  下次考试 一定要细心
  var i = 0;
  while(i<6){
    console.log("下次考试一定要细心" + i);
    i++;
  }

  for(var i = 0;i<6;i++){
    console.log("下次考试一定要细心" + i);
  }

循环的嵌套

说明:在一个循环的内部,再次嵌套一个循环。外循环循环一次,内部循环要循环N次

外层循环一次,内层循环Nfor(var i=1;i<=10;i++){
   for(var j=1;j<=10;j++){
     console.log(“欢迎进行前端学科学习”);
   }
}

循环中的两个关键词

break

Break的用法:

  1. 用于跳出switch-case结构,break后面的代码不会执行.

  2. 用于跳出循环结构,break后面的代码不会执行.

在这里插入图片描述

示例:

  //循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.
  var i = 0;
  var sum = 0;
  while(i<5){
    var age = +prompt('请输入第'+(i+1)+'个人的年龄');
    if(age <0 || age >100) {
      alert('你输入的数据不合法,应该是1--100之间的数,程序终止...');
      break;  //break后面的代码真的不会执行的
    }
    sum += age;
    i++;
  }
continue

作用:

用于结束循环中的本次循环,如果条件成立,继续进行下一次的循环,如果条件不成立,则退出当前循环,continue后面的也不会执行。

在这里插入图片描述

示例:

 //计算1到100(含)之间的除了能被7整除之外所有整数的和。
  var sum = 0;
  for(var i=1;i<=100;i++){
   if(i % 7 == 0){
      continue;//用来结束当前循环的那一次循环,回到循环条件处,改变 循环条件 ,
      //再执行表达式2判断循环条件 是否成立 ,如果成立进行下一次循环,如果不成立 ,
      //则跳出当前循环,与break一样,之后的代码不会执行
    }
     sum += i;
  }
  console.log(sum);

三元(目)运算符

作用:

在一定程度上可以代替if-else结构,而且书写更加方便,多用于在一行书写的时候

性别在数据库中存储的是10,要求输出男或女
var sex = 1;
if(sex == 1) {
   console.log("男");
}else{
   console.log("女");
}
简化的方式
var  sex = 1;
sex = sex == 1 ? "男":"女";
表达式1 ? 表达式2 : 表达式3

短路运算

说明

&&||
如果逻辑运算符的两边是boolean类型的时候,此时进行的是逻辑运算,如果运算符的左边
不是boolean类型的时候,则要进行短路运算.
短路运算最后的运算结果是一个确定的值

&&的运算规则

&& : 找假(接地气的说法)
  &&的左边不是boolean类型的时候,则进行短路运算。
  找假,也就是说,如果第一个操作数为false的话,则直接返回第一个操作数,而不用去管第二个操作数是什么;
  如果第一个操作数为true的话,则直接返回第二个数,而不用去管第二个数是什么.

||的运算规则

|| : 找真
  ||的左边不是boolean类型的时候,则进行短路运算. 
  找真,也就是说,如果第一个操作数转换为对应的boolean类型为true的话,则直接返回第一个操作数,
  不再看第二个操作数是什么,反之,则返回第二个操作数,而不管第二个操作数是什么.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值