05-JavaScript流程控件
程序员文章站
2022-07-07 17:38:15
...
第5章 流程控制
程序的基本结构有三种:
1、顺序结构:从上到下顺序执行。程序默认就是由上到下顺序执行的。
2、分支结构:根据不同的情况及判断,执行对应的代码。
3、循环结构:重复执行一段代码。
5.1 分支结构
1、if语句
语法结构
if(/*条件语句*/){
//代码块
}
if(/*条件语句*/){
//成立执行的代码块
}else{
//不成立执行的代码块
}
if (/* 条件1 */){
// 成立执行语句
} else if (/* 条件2 */){
// 成立执行语句
} else if (/* 条件3 */){
// 成立执行语句
} else {
// 最后默认执行语句
}
案例
//获取两个数字中最大值
var a = 100;
var b = 200;
if(a>b){
console.log(a);
}else{
console.log(b);
}
//判断一个数是奇数还是偶数
var n = 10;
if(n%2 == 0){
console.log('偶数');
}else{
console.log('奇数');
}
/*
* 例子:
* 获取考试的分数,如果成绩是在90(含)分以上的,则显示级别:A
* 如果成绩是大于等于80的则:B
* 如果成绩是大于等于70的则:C
* 如果成绩是大于等于60的则:D
* 如果成绩是小于60的则:E
*
* */
var score = 91;
if (score >= 90) {
console.log("A");
} else if (score >= 80) {
console.log("B");
} else if (score >= 70) {
console.log("C");
} else if (score >= 60) {
console.log("D");
} else {
console.log("E");
}
//判断一年年份是闰年还是平年
//依据:闰年能被4整除,但不能被100整除; 或者能被400整除。
var n = 2016;
if(n%400 == 0){
console.log('闰年');
}else{
if(n%4 == 0 && n%100 !=0){
console.log('闰年')
}else{
console.log('平年');
}
}
2、三元运算符
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
案例
// 是否年满18岁
var age = 18;
var str = age>=18 ? '成年' : '未成年';
console.log(str);
// 从两个数中找最大值
var a = 10;
var b = 19;
var max = a > b ? a : b;
console.log(max);
3、switch语句
语法格式
switch(表达式){
case 常量1:
语句1;
break;
...
case 常量n:
语句n;
break;
default:
语句;
break;
}
功能说明
switch 语句根据表达式的值,依次与case常量值进行比较:
如果相等,则执行其后的语句段,只有遇到 break 语句,或者 switch 语句结束才终止;
如果不相等,则继续查找下一个 case。
switch 语句包含一个可选的 default 语句,如果在前面的 case 中没有找到相等的条件,则执行 default 语句,它与 else 语句类似。
default 语句与 case 语句简单比较如下:
- 语义不同:default 为默认项,case 为判例。
- 功能扩展:default 选项是唯一的,不可以扩展。而 case 选项是可扩展的,没有限制。
- 异常处理:default 与 case 扮演的角色不同,case 用于枚举,default 用于异常处理。
案例
var id = 1;
switch (id) {
case 1 :
console.log("普通会员");
break;
case 2 :
console.log("VIP会员");
break;
case 3 :
console.log("管理员");
break;
default :
console.log("游客");
break;
}
5.2 循环结构
在javascript中,循环语句有三种,while、do...while、for循环。
5.2.1 while语句
1、语法结构
while(条件){
语句块;
}
2、功能说明
只要while的条件为真,则一直循环执行语句块里面的内容。
3、案例演示
var x = "",i=0;
while (i<5) {
x=x + "The number is " + i +"\r\n";
i++;
}
console.log(x);
5.2.1 do…while语句
1、语法结构
do{
语句块;
}while(条件)
2、功能说明
do/while 循环是 while循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。
3、案例演示
计算1~100各数累加之和。
var i = 1,sum = 0;
do{
sum = sum+i;
i++;
}while(i<=100)
console.log(sum); //结果为:5050
5.2.3 for语句
1、语法结构
for(表达式1; 表达式2; 表达式3){
语句块;
}
2、功能说明
for循环常用于循环次数确定的情况下,比如:数组
- 表达式1:在循环(语句块)开始之前执行,一般进行初始化;
- 表达式2:循环的条件判断语句
- 表达式3:在循环(语句块)已被执行之后执行
3、案例演示
求1~100之间能被3整除的所有数之和
var sum = 0, i = 1;
for(;i<=100;i++){
if(i%3 == 0){
sum += i;
}
}
console.log(sum);
打印99乘法表
var s='';
for(var i=1;i<=9;i++){
for(var j=1;j<=9;j++){
if(j>i){ // 内循环只打印小于等于i的数
break;
}
s += i+" X "+j+" = " + i*j + '\t';
}
s += '\r\n'
}
console.log(s);
/*输出结果
1 X 1 = 1
2 X 1 = 2 2 X 2 = 4
3 X 1 = 3 3 X 2 = 6 3 X 3 = 9
4 X 1 = 4 4 X 2 = 8 4 X 3 = 12 4 X 4 = 16
5 X 1 = 5 5 X 2 = 10 5 X 3 = 15 5 X 4 = 20 5 X 5 = 25
6 X 1 = 6 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 6 X 5 = 30 6 X 6 = 36
7 X 1 = 7 7 X 2 = 14 7 X 3 = 21 7 X 4 = 28 7 X 5 = 35 7 X 6 = 42 7 X 7 = 49
8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64
9 X 1 = 9 9 X 2 = 18 9 X 3 = 27 9 X 4 = 36 9 X 5 = 45 9 X 6 = 54 9 X 7 = 63 9 X 8 = 72 9 X 9 = 81
*/
重点:while、do…while和for三种循环的区别:
1、while和do…while语句多用于循环次数不明确的情况;
2、for语句通常用于循环次数明确的情况;
3、do…while至少执行循环体一次;而while和for,如果条件不满足,则不执行循环体。
5.2.4 continue和break
功能说明
- break:立即跳出整个循环,即循环结束,开始执行循环后面的内容。
- continue:立即跳出当前循环,继续下一次循环。
案例演示
求1~100之间能被7整除的整数之和
var sum=0;
var s = '';
for(var i=1;i<=100;i++){
if(i%7 != 0){
continue;
}
sum += i;
s += i + "+";
}
console.log(s.substr(0,s.length-1) + "=",sum);
// 输出结果为:7+14+21+28+35+42+49+56+63+70+77+84+91+98 = 735
打印1~10的整数,当为5时,中断循环
for(var i = 1;i<=10;i++){
if(i == 5cut) break;
console.log(i);
}
//打印结果为:1 2 3 4
总结:
代码的执行流程分为顺序、分支和循环三种结构,顺序结构是默认的,判断结构主要有if-else和switch-case两种,循环结构有while、do-while、for三种,其中continue和break是跳出循环;
上一篇: JS DAY2 数据类型和它的转换
下一篇: js中的for-in和for-of