流程控制语句
2017-08-27 本文已影响0人
流着万条永远的河
var a = 1
if (a === 1) {
console.log ('ok')
}else {
console.log ('are u ok?')
}
输出'ok'
var score = 100
switch (score) {
case 100:
console.log('100分')
break;
case 99:
console.log('99分')
break;
case 98:
case 97:
case 96:
console.log('90多分')
break;
default:
console.log('其他分数 ')
}
输出100分,同理赋予99或者其他的,输出结果一一对应。case是后面冒号的,是条件语句,给score赋值的。
而break 就是满足了它前面的条件并执行了,然后终止对后续的运行。如果忘了写后面的break,赋值97,会有两个结果——97分和其他分数。
var score = 97
switch (true) {
case score >90:
console.log('大于90分')
break;
case score > 80:
console.log('大于80分')
break;
case score >60:
console.log('大于60分')
break;
default:
console.log('其他分数 ')
}
输出大于90分。
switch做的判断是全等的,不会做类型的转换 ——===。
循环:
var i = 10
while (i > 0) {
console.log( i );
i--;
}
10>0,输出10,i自减,变成9
9>0,输出9,i自减,变成8
8>0,输出8,i自减,变成7
6,5,4,3,2,
1>0,输出1,i自减,得0
0=0,不能执行。
var i = 4
do {
console.log ( i );
i--;
} while( i > 5);
先运行再判断。
输出4,4自减得3,3>5 false,over掉了。
for (var i =10; i > 0; i--) {
console.log ( i );
}
10>0,输出为10,10自减,i值为9
9>0,输出为9,9自减,i值为8,
8,7,6,5,4,3,2,
1>0,,输出1,1自减,i值为0
0=0,终结。
这里的注意点是变量的改变式运行是在输出结果之后才发生的。
for (var i = 1; i<10; i++) {
if ( i % 4 === 0) {
break;
}
console.log( i );
}
1<10,1%4不是0,输出1,继续,1自增得2
2<10,2%4不是0,输出2,继续,2自增得3
3<10,3%4不是0,输出3,继续,3自增得4
4<10,4%4 === 0,break!
for (var i =1; i<10; i++) {
if (i % 4 === 0) {
continue;
}
console.log (i);
}
continue是遇到了,就会跳过本次循环,继续下次循环也就是不输出后面的i了。
1<10,1%4不是0,不能继续,输出1,1自增得2
2<10,1%4不是0,不能继续,输出2,2自增得3
3<10,1%4不是0,不能继续,输出3,3自增得4
4<10,4%4是0,继续,不能输出4,4自增得5
5的话,输出,6也是,7也是,8不行,9输出,10不行了。