js流程控制语句

81 阅读2分钟

流程控制

1.单分支if

    if(条件)
    {
        执行相应代码;
    }

2.双分支 if else

if(条件)
{
	执行相应代码;
}

3.多分支

  1. if...else if
if(条件){
    执行相应代码;
}else if(条件){
    执行相应代码;
}else if(条件){
    执行相应代码;
}else if(条件){
    执行相应代码;
}else{
    执行相应代码;
}
  1. switch

    • 利用switch括号后的值与case后的值匹配,匹配上就执行case下对应的语句,没匹配上就执行default下的默认语句
switch(表达式){
    case value1:
      执行语句1;
      break;//跳出循环,有break才跳出,没有就继续执行下一个
    case value2:
      执行语句2;
    case value3:
      执行语句3;
    default:
      执行默认句;
  }

  • switch的表达式的值与case的值做全等于的匹配(数据类型和值都相等)

  • switch的表达式的值一般来说是常量

  • case后面必须要跟break才能跳出循环,否则会继续执行下一个case

  • default可以不写

  • 例:计算器

const readline = require('readline-sync');
console.log('请输入第一个数:');
let a=readline.question()-0;//-0为了让获取到的值变成数字型
console.log('请输入运算符');
let p=readline.question();
console.log('请输入第二个数:');
let b=readline.question()-0;
switch(p){
    case '+':
        console.log(`结果是:${a+b}`);
        break;
    case '-':
        console.log(`结果是:${a-b}`);
        break;
    case '*':
        console.log(`结果是:${a*b}`);
        break;
    case '/':
        console.log(`结果是:${a/b}`);
        break;
    default:
        console.log('请输入正确的运算符!');
}

4.循环

  1. while

    • 适用场景:一段代码,需要重复执行多次

    • 书写格式

    while(条件){
        循环体;//循环体可以使多条代码
    }
    
    • 功能

      • 条件为true则重复执行
      • 条件为false则结束循环
      •     let j=6;
            while (--j){//当j变为0的时候,隐式转换成false
                console.log(j);
            }
        
  2. do...while

    • 适用场景

    • 功能

      • 先执行循环体再判断
      • 条件为true则重复执行
      • 条件为false则结束循环
    • 书写格式

    •     do{
              循环体
          }while(条件);
      
      • 循环体至少执行一次
    •     let j=6;
          do{
              console.log(j);
          }while(--j)//当j变为0的时候,隐式转换成false
      
  3. for

    • 书写格式

    •     for(表达式1;表达式2;表达式3){
              循环体4;
          }
      
    •     for(let i=1;i<=5;i++){
              console.log(i);
          }
      
      • continue:结束本次循环
      • break:结束当前循环
      •     let state1=true;
            let state2=true;
            let state3=true;
            bbb:while(state1){
                while(state2){
                    while(state3){
                        console.log(1);
                        break bbb;//可以自定义取名,必须和前面一致,但有兼容问题,可以直接跳出标记的那个循环,写在什么地方就跳出哪里
                    }
                }
            }
            console.log('aaa');//1 aaa
        
    • 例:九九乘法表

    •     let product = '';//定义一个空字符串来装乘积
          for (let i = 1; i <= 9; i++) {
              for (let j = 1; j <= i; j++) {
                  product += `${i}*${j}=${i*j}\t`;//拼接成公式
              }
              console.log(product);//输出一行
              product = '';//输出一行后要清零
          }