(一):流程控制介绍
流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序
![image-20221228205238011](https://joker-wen-1307590525.cos.ap-guangzhou.myqcloud.com/202212282052034.png)
- 顺序流程控制
顺序结构是程序中最简单的、最基本的流程控制,他没有特定的语法结构,程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
- 分支流程控制
分支结构由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果。
1:if语法结构
-
程序默认从上到下一句一句代码执行, 这就是顺序结构
-
若是某一行代码出现了错误, 则后面的代码无法执行
执行流程
<script>
/*
1:语法结构 if(如果) else(否则)
if (条件表达式) {
执行语句1
} else {
执行语句2
}
2:思路:如果表达式结果为真 那么执行语句1 否则执行语句2
3:if里面的语句1 和else里面的语句2 最后只有1个语句执行, 2选1
*/
var age = prompt("你今年的岁数?");
if (age >= 18) {
alert("欢迎光临");
} else {
alert("滚");
}
</script>
2: if else双分支语句
执行流程
<script>
/*
1:语法结构 if(如果) else(否则)
if (条件表达式) {
执行语句1
} else {
执行语句2
}
2:思路:如果表达式结果为真 那么执行语句1 否则执行语句2
3:if里面的语句1 和else里面的语句2 最后只有1个语句执行, 2选1
*/
var age = prompt("你今年的岁数?");
if (age >= 18) {
alert("欢迎光临");
} else {
alert("滚");
}
</script>
3:if else if 双分支语句
<script>
/* 1:多分支语句 就是利用多个条件来选择不同的语句执行,从而得到不同的结果,就是多选1的过程。
2:if else if语句是多分支语句
3:执行思路
(1):如果条件表达式1满足就执行语句1,执行完毕后,退出整个if分支语句
(2):如果条件表达式1不满足,则判断条件表达式2,满足的话就执行语句2,以此类推
(3):如果上面的所有表达式都不成立,则执行else里面的语句
4:注意点
(1):多分支语句,最后只能有一个语句执行
(2):else if 理论上是可以任意多个的
(3):else if 中间必须加空格
*/
if (条件表达式1) {
//执行语句1
} else if (条件表达式2) {
//执行语句2
} else if (条件表达式3) {
//执行语句3
} else {
//最后的执行语句
}
</script>
判断成绩案例
<script>
/* 一般按照从大到小判断的思路
1: 让用户输入成绩
2:100-90优秀 89-80良好 79-70一般 69-60及格 59-0不及格
其他:请输入1-100数字(内部处理)
3:显示给用户 */
var score = prompt("请输入您的成绩");
if (score >= 90) {
alert("优秀");
} else if (score >= 80) {
alert("良好");
} else if (score >= 70) {
alert("一般");
} else if (score >= 60) {
alert("及格");
} else {
alert("不及格");
}
</script>
4:三元表达式
<script>
/* 1:有三元运算符组成的式子称为三元表达式
2:++num(一元) 1 + 2(二元) ?:(三元)
3:语句结构: 条件表达式 ? 表达式1 : 表达式2
4:执行思路:
如果条件表达式1的结果为真则返回表达式1的值,如果条件表达式1的结果为假,则返回 表达式2的值
*/
var num = 10;
var result = num > 5 ? "yes" : "no";
console.log(result);
/*if (num > 5) {
result = "yes";
} else {
result = "no";
} */
</script>
5:switch语句
switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用switch。
语法结构:
<script>
/*1:switch语句是多分支语句 也可以实现多选一;
2:case是选项的意思
3:执行思路:利用表达式的值和case后面的选项值相匹配,如果匹配上,就执行 该case里面的语句,如果都没有匹配上,那么执行default里面的语句
*/
switch (表达式) {
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
// ..... 此处省略100个
default:
执行最后的语句;
}
</script>
案例:
<script>
var num = 5;
switch (num) {
case 1:
console.log(1);
break;
case 2:
console.log(2);
break;
case 3:
console.log(3);
break;
default:
console.log("没有查询到哦");
}
</script>
注意事项:
1:在实际开发里面表达式我们经常写成变量
2:num里面的值和case里面的值相匹配的时候必须是全等的, 值和数据类型一致才可以
例如:num === 1
3:如果当前的case 里面没有break,则不会退出switch,而是继续执行下一个case
(二):循环介绍
语法结构(单层for循环)
1: for 表示重复执行某些代码, 通常跟计数有关系
2:for语法结构:
for(初始化变量,条件表达式,操作表达式){
循环体
}
3:初始化变量 用var声明的一个普通变量,通常用于计数器使用
4:条件表达式 用来决定每一次循环是否继续执行,就是终止的条件
5:操作表达式 每次循环最后执行的代码 经常用于计数器变量进行更新(递增或者递减)
6:代码体验,重复打印100句 你好,世界
<script>
for (var i = 1; i <= 100; i++) {
console.log("你好,世界");
}
</script>
1:执行过程
1:首先执行里面的计数变量 var i = 1 但是这句话在for循环里只执行一次
2:用i <= 100 来判断是否满足条件,如果满足条件就去执行循环体,如不不满条件就退出循环
3:最后去执行i++ i++是单独写的代码(递增)
4:然后又去执行i <= 100 来判断是否满足条件,如果满足条件就去执行循环体,如不不满条件就退出循环
<script>
for (var i = 1; i <= 100; i++) {
console.log("世界,你好");
}
</script>
2:执行相同代码
<script>
//可以让用户输入次数
var num = prompt("请输入次数");
for (var i = 1; i <= num; i++) {
console.log("你好,世界");
}
</script>
3:执行不同代码
<script>
for (var i = 1; i <= 100; i++) {
if (i == 1) {
console.log("这个人1岁了");
} else if (i == 100) {
console.log("这个人100岁了");
} else {
console.log("这个人今年" + i + "岁了");
}
}
</script>
4:循环重复某些操作
<script>
var sum = 0;
for (var i = 1; i <= 100; i++) {
// sum = sum + i;
sum += i;
}
console.log(sum);
</script>
5:求学生成绩案例
弹出输入框输入总的班级人数(num)
依次输入学生的成绩(保存起来 score),此时我们需要用到
for 循环, 弹出的次数跟班级总人数有关系 条件表达式i<=num
进行业务处理:计算成绩。 先求总成绩(sum),之后求平均成绩(average)
弹出结果
<script>
var num = "请输入班级总人数";
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);
alert("班级平均分是" + average);
</script>
6:一行打印5颗星星
<script>
var num = prompt("请输入星星的个数");
var str = "";
for (var i = 1; i <= num; i++) {
str = str + "☆";
}
console.log(str);
</script>
双重for循环
<script>
/* 1:双重for循环,语法结构:
for(外层的初始化变量;外层的条件表达式;外层的操作表达式){
for(里层的初始化变量;里层的条件表达式;里层的操作表达式)
执行语句
}
2:可以把里层的循环语句看做成外层的循环语句
3:外层循环一次,里层循环执行全部
4:代码验证:*/
for (var i = 1; i <= 3; i++) {
console.log("这是外层循环的第" + i + "次");
for (var j = 1; j <= 3; j++) {
console.log("这是里层循环的" + j + "次");
}
}
</script>
1:打印五行五列星星
<script>
var str = "";
//外层循环负责打印五行
for (var i = 1; i <= 5; i++) {
//里层循环负责一行打印五个星星
for (var j = 1; j <= 5; j++) {
str = str + "☆";
}
//如果一行打印完毕后5个星星就要另起一行显示
str = str + "\n";
}
console.log(str);
</script>
2:打印倒三角形案例
<script>
var str = "";
for (var i = 1; i <= 10; i++) {
for (var j = i; j <= 10; j++) {
str = str + "☆";
}
str = str + "\n";
}
console.log(str);
</script>
3:打印九九乘法表
1: 首先,它定义了一个空字符串
str
,然后使用第一层循环迭代从 1 到 9 的整数。在每次迭代中,它使用第二层循环迭代从 1 到当前迭代值的整数。在每次迭代中,它将输出形式为 "j x i = i * j" 的字符串,并将其拼接到str
字符串的末尾。例如,在第一次迭代中,它会输出 "1 x 1 = 1",在第二次迭代中,它会输出 "1 x 2 = 2" 和 "2 x 2 = 4"。2: 在第一层循环的每次迭代之后,它还会将换行字符
\n
拼接到str
字符串的末尾,以便在输出乘法表时显示换行。3: 最后,它使用
console.log()
函数将str
字符串输出到控制台。输出的结果将是一个乘法表,每行都由对应的乘法算式组成,表格的每一行都在输出中单独一行。
<script>
var str = "";
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
//1 x 2 = 2
str += j + "x" + i + "=" + i * j + "\t";
}
str += "\n";
}
console.log(str);
</script>
while循环
1: while 循环语法结构
while(条件表达式){
循环体
}
2:执行思路:当条件表达式结果为true时则执行循环体,否则退出循环
3:里面应该有计数器和初始化变量
4:里面也应该有操作表达式 完成计数器的更新,防止死循环
5:代码验证↓
<script>
var num = 1;
while (num <= 100) {
console.log("hello,word");
num++;
}
</script>
1:while循环案例
<script>
// 1:打印人从1~100岁
var i = 1;
while (i <= 100) {
console.log("这个人今年" + i + "岁了");
i++;
}
//2:计算1~100之间所有的和
var j = 1;
var sum = 0;
while (j <= 100) {
sum = sum + j;
j++;
}
console.log(sum);
//3:弹出一个提示框你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问
var love = prompt("你中意我吗?");
while (love != "中意") {
love = prompt("你中意我吗?");
}
alert("我也中意你");
</script>
do whild循环
1: do while 语法结构
do {
循环体
} while (条件表达式);
2: 执行思路 跟while不同的地方在于do while先执行一次循环体,在判断条件表达式,如果条件表达式结果为真,则继续执行循环体,否则退出循环
3: do 里面的循环体至少循环一次
4: 代码验证 ↓
<script>
var i = 1;
do {
console.log("hello,word");
i++;
} while (i <= 100);
</script>
1:do while循环案例
<script>
// 1:打印人从1~100岁
var i = 1;
do {
console.log("这个人今年" + i + "岁了");
i++;
} while (i <= 100);
//2:计算1~100之间所有的和
var sum = 0;
var j = 1;
do {
sum = sum + j;
j++;
} while (j <= 100);
console.log(sum);
//3:弹出一个提示框你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问
do {
var love = prompt("你中意我嘛?");
} while (love != "中意");
alert("我也中意你");
</script>
continue 和 break
- for循环添加continue, continue后面的语句不再执行, 直接进入下一次循环
- for循环添加break后, 当符合break条件, 退出循环
continue案例:
<script>
//continue关键字 退出当前次循环,继续执行剩余次数循环
for (var i = 1; i <= 5; i++) {
if (i == 3) {
continue; //只要遇见continue 就退出本次循环,直接跳到i++;
}
console.log("我正在吃第" + i + "个包子");
}
//求1~100之间,除了能被7整除之外的整数和
var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
continue;
}
sum += i;
}
console.log(sum);
</script>
break案例
<script>
for (var i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
console.log("我正在吃第" + i + "个包子");
}
</script>
标签:语句,04,流程,else,循环,var,执行,表达式
From: https://www.cnblogs.com/jokerwen/p/17033600.html