06-JavaScript的流控制语句
JavaScript的流控制语句主要分为三大类:
- 顺序控制:因为JS是一门解释性语言,所以从上至下按顺序依次执行
- 分支控制:主要分为if条件语句和swith开关语句
- 循环控制:主要分为for循环语句、while循环语句、do-while循环语句
1.分支控制
1.1if条件语句
1- 单分支
结构:
if(条件表达式){
语句;
}
例:
// 单分支
var a = 5;
if (a >= 5){
console.log(a);
}
2- 双分支
结构:
if(条件表达式){
语句;
}else{
语句;
}
例:
// 双分支
var sex = window.prompt('请输入性别');
if (sex == '男'){
console.log('你是一个帅哥');
}else{
console.log('你是一个美女');
}
3- 多分支
注意:多分支,找到一个入口后,后面的都不判断了。
强调:一旦找到一个满足条件的入口,执行完毕后,就直接结束整个多分支。
结构:
if(条件表达式1){
//执行
}else if(条件表达式2){
//执行
}else if…{
//可以有多个else if
}else{
//可以没有
}
例:
// 猜年龄游戏
age = prompt('请输入年龄');
age = Number(age);
if (age < 30){
console.log('你输入的年龄太小了,请往大猜。');
}else if(age > 30){
console.log('你输入的年龄太大了,请往小猜。');
}else{
console.log('恭喜,你猜对了!');
}
4- 逻辑与-&&、逻辑或||
逻辑与&&
// 逻辑与&&
var a = 200;
if (a<400 && a > 50){
console.log('这是我需要的数字');
}
逻辑或||
// 逻辑或||
var a = 200;
if (a % 4 == 0 || a % 100 == 0){
console.log('这是我需要的数字');
}
1.2swith开关语句
注意:case有几个都行,case后面接的是一个值而不是一个条件表达式(类似shell的case),default可以没有。当case1~n都不满足的时候,则default。default并不一定要在最后。break的作用是满足条件跳出整个switch语句
结构:
switch(条件表达式){
case 常量1:
语句; break;
case 常量2:
语句; break;
…
case 常量n:
语句; break;
default:
语句;
}
例:
// 星期分析
var day = new Date().getDay()
switch(day){
case 0:
console.log(day + '--' + 'Sunday');
break;
case 1:
console.log(day + '--' + 'Monday');
break;
case 2:
console.log(day + '--' + 'Tuesday');
break;
case 3:
console.log(day + '--' + 'Wednesday');
break;
case 4:
console.log(day + '--' + 'Thursday');
break;
case 5:
console.log(day + '--' + 'Friday');
break;
case 6:
console.log(day + '--' + 'Saturday');
break;
}
2.循环控制
2.1for循环语句
结构:
for循环
for(循环初值;循环条件;步长){
语句; //循环体
}
例:
// for循环
for (i=0;i<=5;i++){
console.log(i);
}
2.2while循环语句
说明:while循环是先判断再执行语句
结构:
while(循环条件){
语句; //循环体
}
例:
// while循环
var i = 0
while (i<=5){
console.log(i);
i++;
}
2.3do-while循环语句
说明:do-while循环是先执行,再判断。
结构:
do{
语句;//循环体
}while(循环条件);
例:
// do-while循环
var i = 0;
do{
console.log(i);
i++;
}while(i<=5);
2.4 循环控制练习
练习1:将1-100所有是2的倍数再控制台中打印。使用while循环编写
// 将1-100所有是2的倍数再控制台中打印。使用while循环编写
var i = 1;
while (i<=100){
if (i%2==0){
console.log(i);
}
i++;
}
练习2:将1-100所有是2的倍数再控制台中打印。使用for循环编写
// 将1-100所有是2的倍数再控制台中打印。使用for循环编写
for (i=1;i<=100;i++){
if (i%2==0){
console.log(i);
}
}
练习3:求1-100之间所有数的和
// 求1-100之间所有数的和
// for循环
var i = 1, sum =0;
while (i<=100){
sum += i;
i++;
}
console.log(sum); // while循环
var sum = 0;
for (i=1;i<=100;i++){
sum += i;
}
console.log(sum);
练习4:在浏览器中输出直角三角形
// 练习4:在浏览器中输出直角三角形 width = prompt('请输入直角三角形的长') for (i=1;i<=width;i++){
for (j=1;j<=i;j++){
document.write('*');
}
document.write('<br>');
}
练习5:等腰锐角三角形
// 练习5:等腰锐角三角形
for(var i=1;i<=6;i++){ //行数 //控制我们的空格数
for(var s=i;s<6;s++){
document.write(' ');
} for(var j=1;j<=2*i-1;j++){
document.write('*');
}
document.write('<br>');
}