6.前端笔记-JS-流程控制

1、流程控制

通过控制代码的执行顺序实现我们要完成的功能。控制代码按照什么结构顺序执行
有三种结构:顺序结构、分支结构、循环结构

1.1 顺序流程控制

最简单、最基本的流程控制。程序按照代码的先后顺序,依次执行

1.2 分支流程控制

从上到下执行代码的过程中,根据不同的条件,执行不同的代码,从而得到不同的结果
js中提供了两种分支结构的语句

  • if语句、if-else语句
  • switch语句

1.2.1 if语句

//条件表达式1结果为真,就执行语句1.否则就跳过if执行下边的语句
if(条件表达式1){
//执行语句1
}

进入网吧案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //如果输入年龄>=18就输出可以进入网吧
        var age=prompt('请输入年龄:');
        if(age>=18){
            alert("可以进入");
        }
    </script>
</head>
<body>
    
</body>
</html>

键盘输入19
在这里插入图片描述

1.2.2 if-else语句

条件表达式结果为真,执行语句1,否则执行语句2

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

案例2:大于等于18,进入网吧。小于18,去学习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //如果输入年龄>=18就输出可以进入网吧
        var age=prompt('请输入年龄:');
        if(age>=18){
            alert("可以进入");
        }else{
            alert("请回去学习");
        }
    </script>
</head>
<body>
    
</body>
</html>

案例3:判断闰年
闰年:能被4整除且不能被100整除的是闰年,或者能被400整除的也是闰年

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var year=prompt("请输入年份:");
        if(year%4==0&&year%100!=0||year%400==0){
            alert(year+"年是闰年");
        }else{
            alert(year+"年不是闰年");
        }
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

1.2.3 if-else-if语句-多分支

if(表达式1){
//执行语句1;
}else if(表达式2){
//执行语句2;
}else{
//执行语句3;
}

1.2.3 三元表达式

一元表达式:++num;
二元表达式:n+m
三元表达式:如果条件表达式结果为真,则返回表达式1的值,否则返回表达式2的值

条件表达式?表达式1:表达式2;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var num=10;
        var res=num>10?"是":"否";
        alert(res);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述
案例:
用户输入数字,如果数字小于10,就在前面补0,比如01,09.如果数字大于10,就不需要补,比如20

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var num=prompt("请输入0~59之间的数字");
        var res=num<10?'0'+num:num;
        alert(res);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

1.2.4 switch语句

//表达式的值与case后的值进行匹配,匹配上就执行该case里的语句,都没有匹配上就执行default的语句
switch(表达式){
	case value1:
		执行语句1;
		break;
	case value2:
		执行语句2;
		break;
	default:
		执行最后的语句;
}

注意:

  • 表达式经常写的是变量名
  • 变量值和case里的值进行匹配时是全等匹配的,就是变量值===value
  • break一定要写,否则会穿透,比如已经满足条件执行了语句1,但因为case语句1后边没有写break,还会依次执行语句2…
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var num=3;
        switch(num){
            case 1:
                console.log(1);
                break;
            case 2:
                console.log(2);
                break;
            default:
                console.log(3);
        }
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

1.2.5 if-else-if与switch的区别

  • 一般情况下,两个语句可以相互替换’
  • switch语句通常处理case为比较确定值的情况,而if-else-if语句更加灵活,常用于范围判断(大于等于某个范围)
  • siwtch条件判断后直接执行到程序的条件语句,效率更高,而if-else语句有几种条件就要判断几次

2、循环

目的:可以重复执行某些代码和操作

2.1 for循环

循环体:一组被重复执行的语句
循环终止条件:决定是否继续重复执行的条件
循环语句:由循环体和循环终止条件组成的语句

2.1.1 语法结构

for循环主要用于把某些代码循环若干次,通常跟计数有关系。

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

浏览器-F12-sources-page-找到需要调试的文件-在程序的某一行设置断点-刷新浏览器
在这里插入图片描述

例子:

练习1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        for(var i=1;i<3;i++){
            console.log("第"+i+"次循环");
        }
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述
练习2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
//  1.1-100平均值
        var total=0;
        for(var i=1;i<=100;i++){
            total+=i;
        }
        var average=(total/100);
        console.log("1-100平均值="+average);
        // 2.1-100所有偶数和奇数的和
        var odd=0;
        var even=0;
        for(var i=1;i<=100;i++){
            if(i%2==0){
                even+=i;
            }else{
                odd+=i;
            }
        }
        console.log("1-100所有奇数和="+odd+"所有偶数和="+even);
        // 3.1-100所有能把3整除的数字的和
        var res3=0;
        for(var i=1;i<=100;i++){
            if(i%3==0){
                res3+=i;
            }
        }
        console.log("1-100能被3整除的数字的和="+res3);


    </script>
    

</head>
<body>
    
</body>
</html>

在这里插入图片描述
练习3:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var num=prompt("班级人数:");
        var sum=0;
        for(var i=1;i<=num;i++){
            var score=prompt("第"+i+"学生成绩是:");
            sum+=parseFloat(score);
        }
        var average=sum/num;
        alert("学生平均成绩是="+average);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

2.2 双重for循环

2.2.1 语法结构

外部的循环执行一次,里边的循环执行全部

for(外层初始化变量;外层的条件表达式;外层的操作表达式){
	for(里层初始化变量;里层的条件表达式;里层的操作表达式){
		//里层循环体;
	}
	//外层循环体;
}
案例:
打印倒三角:

第1行打印10个,第2行8个…第10行1个

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var str='';
        for(var i=1;i<=10;i++){
            for(var j=i;j<=10;j++){
                str+='♥';
            }
            str+='\n';
        }
        console.log(str);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

九九乘法表
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var str='';
        for(var i=1;i<=9;i++){
            for(var j=1;j<=i;j++){
                var tmp=j+'*'+i+'='+j*i;
                str=str+tmp+' ';
            }
            str+='\n';
        }
        console.log(str);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

2.3 while循环

当条件表达式结果为true,就执行循环体
先判断后执行,所以循环体有可能一次也执行不了

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

2.4 do while循环

先执行一次循环体,再判断条件
表达式结果是否为true,如果为真继续执行循环体,否则推出循环
所以do while循环体至少会执行一次

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

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // <!-- 计算1-100的和 -->
        var sum = 0;
        var i=1;
        do{
            sum+=i;
            i++;
        }while(i<=100)
        alert("1-100之和="+sum);

    </script>
</head>

<body>


</body>

</html>

在这里插入图片描述

2.4 continue和break

2.4.1 continue

用于跳出本次循环,继续进入下次循环

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var sum=0;
        for(var i=1;i<=100;i++){
            if(i%7==0){
                continue;
            }
            sum+=i;
        }
        alert("sum="+sum);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

2.4.2 break

用于立即跳出整个循环(循环结束)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        for(var j=1;j<=5;j++){
            if(j==3){
                break;
            }
            alert("我在吃第"+j+"个包子");
        }
    </script>
</head>
<body>
    
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 跨浏览器,可兼容IE7--IE10, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件。  多系统兼容性、可移植性:由于只包括前台UI,因此二次开发者可很方便将本插件用在任何一种需要流程图的B/S系统应用上,流程图的详细实现逻辑完全交于后台程序开发者自己实现;对于后台,只要能返回/接收能被本插件解析的JSON格式数据即可.所以本插件可用于不同的服务器语言建立的后台上.  跨领域:流程图设计器不止用在电信领域,在其它需要IT进行技术支持的领域中都有重大作用.  以下从纯技术实现层面具体描述:  页面顶部栏、左边侧边栏均可自定义;  当左边的侧边栏设为不显示时,为只读状态,此时的视图区可当作是一个查看器而非编辑器。  侧边工具栏除了基本和一些流程节点按钮外,还自定义新的节点按钮,自定义节点都可以有自有的图标、类型名称,定义后在使用可可在工作区内增加这些自定义节点。  顶部栏可显示流程图数据组的标题,也可提供一些常用操作按钮。  顶部栏的按钮,除了撤销、重做按钮外,其余按钮均可自定义点击事件。  可画直线、折线;折线还可以左右/上下移动其中段。  具有区域划分功能,能让用户更直观地了解哪些节点及其相互间的转换,是属于何种自定义区域内的。  具有标注功能,用橙红色标注某个结点或者转换线,一般用在展示流程进度时。  能直接双击结点、连线、分组区域中的文字进行编辑  在对结点、连线、分组区域的各种编辑操作,如新增/删除/修改名称/重设样式或大小/移动/标注时,均可捕捉到事件,并触发自定义事件,如果自定义事件执行的方法返回FALSE,则会阻止操作。  具有操作事务序列控制功能,在工作区内的各种有效操作都能记录到一个栈中,然后可以进行撤销(undo())或重做(redo()),像典型的C/S软件一样。  0.4版中,加入了只导出在初始载入后被编辑的流程图中,只作了增删改等变更的元素,这样可用于用户快速存储,只保存本次变更过的内容,不用重新保存整个流程。  0.5版中,结点的样式不再受到原有程序的限制,所有样式均默认为淡蓝色长方形;如果要指定为圆形,可在初始化时定义结点类型为”原有类型”+” round”;如果要指定为复合结点,则可在初始化时定义结点类型为”原有类型”+” mix”。”原有类型”+” myType”:myType可为自己写的一种特殊样式类.  0.6版中,修正了一些BUG,改善了用户操作体验,并增加在可编辑状态下时,能用键盘上DELETE按键对元素进行删除功能。  0.7版中,修正了一些BUG,增加了连线变更要连的起始结点或结束结点的功能。  0.8版,取消原来的拟物化页面,变成如今的扁平化页面,并且支持主要位置的颜色自定义功能(如果想沿用原来老版本中的拟物化页面,只需保留原来的GooFlow.css文件即可);修正0.7版中的画线BUG。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值