在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们需要通过控制代码来执行顺序来实现我们要完成的功能
流程控制的主要三种结构
按照代码的先后顺序,依次执行
由上到下执行代码过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果
JS语言提供了两种分支结构语句:
if(条件表达式){ //执行语句 } xxx // 执行思路 如果if里面的条件表达式结果为真 true,则执行大括号里面的 执行语句 // 如果 条件表达式的结果为假,则不执行大括号里面的语句,则执行if语句后面的代码
弹出输入框,要求用户输入年龄,如果年龄大于等于18岁,则年龄验证成功,解除游戏青少年时长限制
var age = prompt('请输入您的年龄:'); if(age >= 18){ alert('解除游戏青少年时长限制'); }
// 1. 语法结构 if(条件表达式){ // 执行语句1 } else { // 执行语句2 } // 2. 执行思路 如果表达式结构为真,那么执行语句1,否则执行语句2
接收用户输入的年份,如果是闰年就弹出闰年,否则弹出是平年
能被4整除且不能整除100的为闰年
var year = prompt('请您输入年份:'); if(year % 4 == 0 && year % 100 !=0){ alert('您输入的年份是闰年'); } else { alert('您输入的年份是平年'); }
// 1. 语法结构 if (条件表达式1){ // 语句1; } else if (条件表达式2) { // 语句2; } else if (条件表达式3) { // 语句3; } else { // 最后的语句; }
(1)多分支语句还是多选一,最后只能有一个语句执行
(2)else if 里面的条件理论上是可以任意多个的
(3)else if中间有个空格
接收用户输入的分数,根据分数输出对应的等级字母A、B、C、D
var score = prompt('请您输入分数:'); if (score >= 85) { alert('您的成绩等级为:A'); } else if (score >= 70) { alert('您的成绩等级为:B'); } else if (score >= 60) { alert('您的成绩等级为:C'); } else { alert('您的成绩等级为:D'); }
有三元运算符组成的式子成为三元表达式
// 条件表达式 ? 表达式1 : 表达式2
如果条件表达式结果为真,则返回 表达式1 的值;如果表达式结果为假,则返回 表达式2 的值
用户输入数字,如果数字小于10,则在前面补0,比如01、05,如果数字大于10,则不需要补,比如18
var time = prompt('请您输入一个 0~59 之间的一个数字'); var result = time < 10 ? '0' + time : time; alert(result);
switch语句也是多分支语句,它用于基于不同条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用switch
switch(表达式) { case value1: 执行语句1; // 等于 value1 时要执行的代码 break; case value2: 执行语句2; // 等于 value2 时要执行的代码 break; ... // 可设置多个分支 default: 执行最后的语句; // 不等于 value 时要执行的代码 }
利用我们表达式的值和case后面的选项值相匹配
如果匹配上,就执行该case里面的语句
如果都没有匹配上,就执行default里面的语句
(1)表达式我们通常写成变量
(2)表达式内变量的值和case里面的值相匹配的时候是全等的,必须是值和数据类型一致才可以
(3)break 如果当前的case里面没有break,则不会退出switch,是继续执行下一个case
用户在弹出框内输入一个水果,如果有就弹出该水果的价格,如果没有就弹出"没有此水果"
var fruit = prompt('请您输入查询的水果:'); switch (fruit) { case '橘子': alert('橘子的价格是 5元/斤'); break; case '苹果': alert('橘子的价格是 3元/斤'); break; default: alert('没有此水果'); }
在实际问题中,有许多具有规律性的重复操作,因此在程序中要完成这类操作就需要重复执行某些语句
主要三种类型的循环语句:
for循环主要用于把某些代码循环若干次,通常跟计数有关
语法结构:
for(初始化变量; 条件表达式; 操作表达式){ // 循环体 }
要求用户输入班级人数,之后依次输入每个学生的成绩,最后打印出该班级总的成绩和平均成绩
嵌套循环是指一个循环语句中再定义一个循环语句的语法结构
var num = prompt("请输入班级的总人数:"); var sum = 0; var average = 0; for (var i = 1; i <= num; i++){ var score = prompt('请您输入第' + i + '个学生成绩'); sum = sum + parseFloat(score); } average =sum / num; alert('班级总成绩:' + sum + '||' + '班级平均分:' + average);
for (外层的初始化变量; 外层的条件表达式; 外层的操作表达式){ for (里层的初始化变量; 里层的条件表达式; 里层的操作表达式){ // 执行语句 } }
var str = ''; for (var i = 1; i <= 9; i++){ // 外层循环控制行数 for (var j = 1; j <= i; j++){ // 里层循环控制每一行的个数 j <= i str += i + 'x' + j + '=' + i * j; } str += '\n'; } console.log(str);
while (条件表达式) { // 循环体 }
计算 1~100之间所有的整数的和
var sum = 0; var i = 1; while (i <= 100){ sum += i; i++ } console.log(sum);
do…while语句其实是while语句的一个变体。该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环
do { //循环体 } while (条件表达式)
计算1~100之间所有整数的和
var sum = 0; var i = 1; do { sum += i; i++ } while (i <= 100) console.log(sum);
continue关键字用于立即跳出本次循环,继续下次循环(本次循环体中continue之后的代码会少执行一次)
求1~100之间,除了能被7整除之外的整数和
var sum = 0; for (var i = 1; i <= 100; i++){ if (i % 7 == 0){ continue; } sum += i; } console.log(sum);
break关键字用于立即跳出整个循环(循环结束)