流程控制主要有三种结构:顺序结构,分支结构,循环结构。
1:顺序结构
从上往下依次执行代码。
2:分支结构
JS语句有两种分支结构:if语句,switch语句。
2.1:if语句
2.1.1:单分支
if(条件表达式){ }
如果{}内部的代码只有一行,可省略{}
var x = 5;
if (x>10) {
alert('大于10')
}
2.1.2:双分支
if(条件表达式){ } else{ }
条件表达式为true则走后面的{},为false则走else后的{}
var x = +prompt('请输入数字...');
// 偶数的条件:x%2==0
// 奇数的条件 x%2==1
if (x%2==0) {
alert(x+'是偶数');//
}else{
alert(x+'是奇数');
}
2.1.3:多分支
if(条件表达式1){ }else if(条件表达式2){ }else{ }
选择其中一条语句执行
var score = +prompt('请输入您的成绩...');
if (score >= 90 && score <= 100) {
alert('优秀');
} else if (score >= 80 && score < 90) {
alert('良好');
} else if (score >= 60 && score < 80) {
alert('及格');
} else if (score >= 0 && score < 60) {
alert('不及格');
} else {
alert('您输入成绩有误...')
}
2.2:swicth语句
swicth(表达式){
case 常量:
语句体;
break;
//当输入的值不在上面的情况则走下面
default:
语句体;
break;
}
var month =prompt("请输入月份");
switch(month){
case "12":
case "1":
case "2":
console.log("冬天");
bleak;
case "9":
case "10":
case "11":
console.log("秋天");
default:
bleak;
}
if和switch的注意事项:
***if多分支运用场景比switch多
***switch:精准匹配(全等匹配 ===)
***case 后面是一个值,常量,不能写成范围
***switch执行效果高于if多分支
3:顺序结构
顺序结构分为:while语句 do while语句 for循环
3.1:while语句
初始变量
while(条件表达式){
循环体;
自增自减表达式
}
/* 篮球从5米高的地方掉下来,每次弹起的高度是原来的30%,
经过几次弹起,篮球的高度小于0.1米。 */
var height=5;
var y=0;
while (height>0.1) {
height=height*0.3;
y++;
}
console.log(y);
3.2:do while语句
初始化变量
do{
循环体;
自增自减表达式
}
while(条件表达式)
3.3:for语句
for(初始化语句;条件表达式;自增自减表达式){
循环体;
}
打印1990-2040年的闰年有哪些。
for(var i = 1990;i<=2040;i++){
if (i%4==0&&i%100!=0||i%400==0) {
console.log(i);
}
}
循环语句之间的差别:
1.while循环和for循环的区别:
***for循环:循环次数确定则用for
***while循环:循环次数不确定则用while
2.while循环和do while循环的区别:
***while循环:符合条件则循环
***do-while循环:至少走一次do
循环的嵌套:
外层循环控制行数,内层循环控制每行个数。
例子:打印一个三角形。
for (var i = 1; i <= 9; i++) {
for(var j = 1;j<=i;j++){
document.write('*')
}
document.write('<br>')
}
三元运算符:
结构:
条件表达式?表达式1:表达式2
条件表达式结果为true,得到表达式1;条件表达式结果为false,得到表达式2
<script>
var x=30;
var y=20;
var z;
z=x>y?x:y;
console.log(z);
</script>
break和continue的区别:
break:终止
continue:继续
break:终止当前(本层)循环,不在循环
continue:终止本次循环,继续下一次循环