流程控制
在任何一门程序设计语言中,都需要支持满足程序结构 化所需要的三种流程控制:
-
顺序控制
-
分支控制(条件控制)
-
循环控制
顺序控制:在程序流程控制中,最基本的就是顺序控制。程序会按照自上而下的顺序执行。
分支流程控制
if语句
switch语句
if语句
分类:单分支、双分支、多分支、分支嵌套
// 单分支
if (条件表达式){
代码段
}
// 双分支
if (条件表达式) {
代码段1
}else {
代码段2
}
// 多分支
if (条件表达式1){
代码段1
} else if (条件表达式2){
代码段2
} else if (条件表达式3){
代码段3
}else{
代码段4
}
switch
switch (变量){
case 值1: 代码段; break; case 值2: 代码段; break; ... default: 代码段; }
var d = new Date();
console.log(d); // 获取日期时间对象
var week = d.getDay(); // 获取星期几
switch (week) {
case 0:
console.log('星期天');
break;
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
break;
case 3:
console.log('星期三');
break;
case 4:
console.log('星期四');
break;
case 5:
console.log('星期五');
break;
case 6:
console.log('星期六');
break;
}
对比:什么时候用if,什么时候用switch
if:条件是一个范围 或者 是具体的值
switch:条件是一个具体的值 能够使用switch实现的判断,都可以使用if来实现 但是,能够使用if语句实现的判断,不一定能使用switch实现
循环控制语句
while语句
While 循环会在指定条件为真时循环执行代码块。
While循环,先进行条件判断,再执行循环体的代码
while (条件表达式){ 循环体 }
注意:但钱循环中,如果不满足条件,一次都不会执行
var i= 1;
while(i<=10){
console.log(i);
i++;
}
do--while语句
do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。
do while循环,先执行循环体代码,再进行条件判断。至少执行一次循环体的代码。
do { 代码段 } while (条件表达式)
var i=1;
do{
i++; // 2
console.log(i);
}while(i<=10)
for语句
for (循环变量初始化表达式; 循环条件表达式; 更新循环变量表达式) { 循环体 }
注意:
-
循环变量可以定义在for 循环结构体外
-
没有更新循环变量会变成死循环
-
循环条件中的‘;’不能省略
for(var i=1;i<=100;i++){
document.write(i);
}
计算1-100的和
var sum=0
for(var i=1;i<=100;i++){
sum += i
if(i<100){
document.write(i+'+');
}else{
document.write(i+'='+sum)
}
}
console.log(sum)
实现阶梯效果
<style>
div{
width: 80px;
height: 50px;
background-color: green;
margin: 5px;
display: inline-block;
}
</style>
<script>
for(var i=1;i<=6;i++){
for(var j=1;j<=i;j++){
document.write('<div>'+'</div>')
}
document.write('<br/>')
}
</script>
九九乘法表
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write('<div>'+j+'*'+i+'='+i*j+'</div>')
}
document.write('<br/>')
}
//倒着的九九乘法表
for(var i=9;i>=1;i--){
for(var j=1;j<=i;j++){
document.write('<div>'+j+'*'+i+'='+i*j+'</div>')
}
document.write('<br/>')
}
for...in循环
for(变量 in 对象){
代码段
}
for..in语句用来遍历对象每一个属性。每次都将属性作为字符串保存在变量里
在无法预知对象的任何信息,和循环次数的时候使用
var book=[
{
'name':'西游记',
'price':59
},
{
'name':'水浒传',
'price':57
},
{
'name':'红楼梦',
'price':59
},
{
'name':'三国演义',
'price':79
}
]
for(var i=0;i<=book.length;i++){
for( a in book[i]){
console.log(book[i]['name']);
break
}
}
跳转语句
continue
continue语句只能应用在循环中(while、do....whlie、for)语句中,用于终止本次循环,根据控制表达式还允许继续进行下一次循环
break
break语句只能应用在循环中(while、do....whlie、for)或switc语句中
break用于退出循环,阻止再次反复执行任何代码或者退出一个switch语句