当前位置: 首页 > news >正文

JavaScript | 流程控制-分支与循环

流程控制-分支

控制代码执行的顺序

有三种结构:顺序结构、分支结构、循环结构

1、分支结构

根据不同条件,执行不同路径的代码,得到不同结果

1.1if语句

if(条件表达式){
    //语句1;
}

如果条件为真,则执行语句1

1.2 if else语句

if(条件表达式){
    //语句1;
}else{
    //语句2;
}

如果条件为真,则执行语句1;否则,执行语句2

1.3 if else if语句

if(条件表达式1){
    //语句1;
}else if(条件表达式2){
    //语句2;
}else if(条件表达式3){
    //语句3;
}else if(条件表达式n){
    //语句n;
}else{
    //最后的语句;
}

满足那个就执行哪个,都不满足就执行else的。

中间的else if可以有任意多个

2、三元表达式

用于简单的条件选择

条件表达式 ? 表达式1 : 表达式2

执行思路:如果条件表达式结果为真,则返回表达式1的值;如果条件表达式结果为假,则返回表达式2的值

3、switch语句

主要针对变量设置一系列特定值的选项时,就可以使用switch

switch(表达式){
    case value1:
        //语句1;
        break;
    case value2:
        //语句2;
        break;
    case valuen:
        //语句n:
        break;
    default:
        //最后的语句;
}

表达式的值会与下面的值匹配,匹配上的就执行对应语句,都没有,就执行最后的default的最后的语句;break用来跳出这个结构,否则会发生穿透

  • switch的表达式一般是变量
  • 表达式与case里面的值匹配的时候是用全等来判断的,必须值与数据类型一致
  • break,如果当前case后面没有break,不会退出switch,会继续执行下一个case

4、switch与if else if的区别

  • 一般情况下,两个可以相互替换
  • switch…case通常处理case是比较确定的值的情况,if…else…更灵活一点,常用语范围判断(大于或小于某个范围)
  • switch是直接跳到匹配的匹配的语句上执行,效率更高;if…else语句有多种条件,需要判断多次
  • 当分支比较少的时候,if…else语句执行效率比switch高

流程控制-循环

1、for循环

语法:

for(初始化变量;条件表达式;操作表达式){
    // 循环体
}

举例:1累加到100

var sum = 0;
for(var i = 1;i<=100;i++){
    sum += i;
}
console.log(sum);//5050

执行过程:i=1,然后判断i是否小于100,符合条件就进入循环体,执行循环体语句,然后执行i++语句;第二轮,判断此时的i满不满足小于等于100的条件,符合则进入循环体,然后再i++…,由此往复,直到i>100,跳出循环;否则,跳出循环

2、while循环

语法:

while(条件表达式){
    //循环体
}

举例:1累加到100

var i = 1,sum = 0;
while(i<=100){
    sum += i;
    i++;
}
console.log(sum);//

执行过程:需要先在外部定义i,然后判断i是否满足条件,满足则进入循环体,不满足则跳出循环

2.1 死循环:

当while的条件表达式判断一直为true时,就会触发,在某些时候要注意设置条件的跳出操作,避免出现死循环;有的情况却又要用死循环来执行,比如,只有当达到某个条件时,才能跳出循环,执行后面的语句。

3、do…while循环

语法:

do{
    //循环体
}while(条件表达式);

执行过程:需要在外部先定义一个计数器,然后进入循环体,先要执行一次循环体,然后再进行判断;

举例:1累加到100

var i = 1,sum = 0;
do{
    sum += i;
    i++;
}while(i<=100);

1、输出一个n行n列的*矩阵

var n = prompt('输入n');
str = '';
for(var i = 1;i<=n;i++){
    for(var j = 1;j<=n;j++){
        str += '*';
    }
    str += '\n';
}
console.log(str);

只有一个输出就把这个题目完成,需要在字符串的后面添加一个\n来换行再打印

2、打印九九乘法表(双重循环)

str = "";
for (var i = 1; i <= 9; i++) {
  for (var j = 1; j <= i; j++) {
    str += j + "*" + i + "=" + i * j;
    str += "\t";
  }
  str += "\n";
}
console.log(str);

关键字:continue

跳出当前循环,进行下一循环

关键字:break

结束循环

相关文章:

  • TypeScript 类型系统详解
  • 第2.7节 iOS生成报告时排除指定的类
  • JavaScript零基础入门速通(完整)
  • Java学习——day22(Java反射基础入门)
  • 现代Web表单验证的终极解决方案:构建可扩展的企业级验证系统
  • npm设置代理和取消代理
  • 语法: setup_lcd (mode, prescale, [segments]);
  • flutter dio网络请求与json数据解析
  • P8720 [蓝桥杯 2020 省 B2] 平面切分
  • 深度学习环境安装
  • [蓝桥杯 2017 省 B] k 倍区间
  • Unity检索一个物体下所有的子物体,只打印激活的物体
  • 【8】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kubelet)
  • 实操(不可重入函数、volatile、SIGCHLD、线程)Linux
  • 从奖励到最优决策:动作价值函数与价值学习
  • UNet 改进(2):深入解析带有坐标注意力机制(CA)的UNet网络
  • go垃圾回收机制
  • Java全栈面试宝典:锁机制与Spring生命周期深度解析
  • edge webview2 runtime跟Edge浏览器软件安装包双击无反应解决方法
  • 探秘JVM内部
  • 祁阳网站建设/网站优化排名方法
  • 网站表单怎么做/爱站网长尾挖掘工具
  • 网站logo设计标准/电商网站平台搭建
  • 局域网内做网站/东莞营销推广公司
  • 做 爱 网站视频短片/网络建站流程
  • 巩义网站网站建设/国内最好的seo培训