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
结束循环