计算机三大流程控制语句
计算机的三大流程控制语句
顺序控制语句
计算机程序的默认执行顺序
从上至下,从左至右
分支控制语句
if switch
根据条件判断的结果,执行程序
要么没有执行内容,要么只有一种执行结果
循环控制语句
while for for…in forEach
根据给定的循环条件来循环往复的执行程序
大概介绍
if判断和switch
(1),应用
if判断使用的范围更广,频率更高
判断范围,判断逻辑表达式,判断嵌套
switch:判断全等于某个数值
(2), if有4种语法形式
if(){}
if(){}else{}
if()else if(){}else if(){}...
if()else if(){}else if(){}...else{}
(3), switch有2中语法形式
switch(变量){
case 数值1 :
程序1;
break;
case 数值2 :
程序3;
break;
case 数值3 :
程序3;
break;
.....
default:
程序;
break;
}
switch的穿越语法
switch(变量){
case 数值1 :
case 数值2 :
case 数值3 :
程序1;
break;
case 数值4 :
case 数值5 :
case 数值6 :
程序2;
break;
.....
default:
程序;
break;
}
注意:
执行 全等判断 时 switch 的效率 高于 if判断
swith也可以做判断嵌套,但是一般不适用
else 和 default 功能是相同的,都是不满足所有条件时,执行的程序,一般用作容错处理
简单if语句和三元运算
所谓的三元运算符,就等价于简单的if语句
这里的简答if语句,指的是没有嵌套的if语句,只是就简单的if…else语句
实际中if语句往往是可以嵌套的
demo
如果是偶数,判断是否在20-50之间,如果在输出 这个数是偶数,在20-50之间
如果不在,输出, 这个数是偶数,不在20-50之间
如果是奇数,判断是否在60-80之间,如果在输出 这个数是奇数,在60-80之间
如果不在输出, 这个数是奇数,不在60-80之间
执行思路:
1,判断数值是奇数偶数
2-1,奇数,判断范围,60-80
2-2,偶数,判断范围.20-50
var int = 55;
判断如果是奇数
if(int % 2 != 0){
奇数的情况,再做判断,范围 60-80
if(int >= 60 && int <= 80 ){
console.log(int + '是奇数,在60-80范围内');
}else{
console.log(int + '是奇数,不在60-80范围内');
}
}else{
偶数情况,再做判断,范围 20-50
if(int >= 20 && int <= 50 ){
console.log(int + '是偶数,在20-50范围内');
}else{
console.log(int + '是偶数,不在20-50范围内');
}
}
这样的if嵌套,就不要写成三元运算符的形式
if判断
if判断的基本语法形式
1, if( 表达式 ){执行程序}
当表达式的结果为true,执行程序
当表达式的结果为false,没有执行程序
当月薪超过 10W , 可以获得 零花钱 100 元
当月薪小于 10W , 就没有零花钱
var pay = 50000;
if(pay > 100000){
console.log('恭喜我自己,获得 100 元零花钱');
}
2 , if(表达式){程序1}else{程序2}
当表达式 结果为 true , 执行 程序1
当表达式 结果为 false, 执行 程序2
当月薪超过 10W , 可以获得 零花钱 100 元
当月薪小于 10W , 可以获得 零花钱 50 元
var pay = 150000;
if(pay > 100000){
console.log('恭喜我自己,获得 100 元零花钱');
}else{
console.log('恭喜我自己,获得 50 元零花钱');
}
3 , if(条件1){程序1}else if(条件2){程序2}else if(条件3){程序3}…
当满足条件1,执行程序1,
当满足条件2,执行程序2…
满足哪个条件就执行哪个条件的程序
判断的顺序是从上至下,如果满足了第一个条件,之后的条件都不会再判断和执行
最终只会执行一个程序
如果所有的条件都不满足,是没有执行内容的
var pay = 50000;
if(pay > 100000){
console.log('恭喜我自己,获得 100 元零花钱');
}else if(pay > 90000 && pay < 100000){
console.log('恭喜我自己,获得 90 元零花钱');
}else if(pay > 80000 && pay < 90000){
console.log('恭喜我自己,获得 80 元零花钱');
}else if(pay > 70000 && pay < 80000){
console.log('恭喜我自己,获得 70 元零花钱');
}
4 , if(条件1){程序1}else if(条件2){程序2}else if(条件3){程序3}…else{}
从第一个条件开始判断,满足那么个条件就执行对应的程序
满足当前条件之后,执行对应的当前程序,之后的else if(),else 不会执行
如果所有的条件都不满足,会执行 else 中的程序
if(pay >= 100000){
console.log('恭喜我自己,获得 100 元零花钱');
}else if(pay >= 90000 && pay < 100000){
console.log('恭喜我自己,获得 90 元零花钱');
}else if(pay >= 80000 && pay < 90000){
console.log('恭喜我自己,获得 80 元零花钱');
}else if(pay >= 70000 && pay < 80000){
console.log('恭喜我自己,获得 70 元零花钱');
}else{
console.log('工资少于7W,我只能跪搓衣板');
}
if语句,写判断条件时,要注意边界值的设定
5.成绩输出
根据成绩输出 内容
定义一个随机数,生成的数值是 1-100范围之内的随机整数
var res = parseInt(Math.random()*100+1);
console.log(res);
程序执行从第一个条件来判断,判断res == 100
如果满足条件执行执行程序
if(res == 100){
console.log(`恭喜您考取的${res}分,获得最强王者称号`);
当我们进入到第二个条件时,一定是第一个条件不满足
也就是 满足 大于 90的条件 但是 一定不会是 100
如果是100,就执行了第一个条件
}else if(res >= 90 ){
console.log(`恭喜您考取的${res}分,获得星耀称号`);
当执行到第三个条件时,第一个和第二个条件一定是不满足的
此时就保证这个数值 是 小于 90的
}else if(res >= 80 ){
console.log(`恭喜您考取的${res}分,获得钻石称号`);
}else if(res >= 70 ){
console.log(`恭喜您考取的${res}分,获得铂金称号`);
}else if(res >= 60 ){
console.log(`恭喜您考取的${res}分,获得黄金称号`);
}else if(res < 60 && res >= 0){
console.log(`恭喜您考取的${res}分,这个游戏不适合你,还是删除了吧`);
一般else 做容错处理
}else {
console.log('您的考试成绩有误,请您在好好瞅瞅')
}
总结
1,if语句()中的条件,可以根据项目需求做调整
只要能实现项目需求,爱怎么写怎么写
2,else 一般做容错处理,当有非负数据参与执行,我们执行else的程序
3,else 之后没有(),没有条件,不要多加内容
switch语句
switch语句也是判断语句形式的一种
功能与if判断基本相同,只是使用环境不同
if语句,往往做比较判断,判断是范围
逻辑运算符,使用if语句做判断
switch 判断等于,某个具体数值时,我们使用switch语句
switch的执行效率高于if判断
switch一定能写成if,但是有些if不适合写成switch
有商品编号 1-5 5种商品 , 根据不同的商品编号,输出商品信息
var num = parseInt(Math.random() * 5 + 1);
if (num == 1) {
console.log(`随机数是${num},输出的是第一种商品的信息`);
} else if (num == 2) {
console.log(`随机数是${num},输出的是第二种商品的信息`);
} else if (num == 3) {
console.log(`随机数是${num},输出的是第三种商品的信息`);
} else if (num == 4) {
console.log(`随机数是${num},输出的是第四种商品的信息`);
} else if (num == 5) {
console.log(`随机数是${num},输出的是第五种商品的信息`);
} else {
console.log('您输入的商品编号有误,无法查询对应的商品信息');
}
如果判断是否等于某个值,例如 5
if需要从第一个条件开始执行判断,执行到5,要多判断4次 false
如果判断较多,执行效率就会比较低
此时就推荐使用 switch 语法
switch 是 根据变量的数值,来进行定位
如果 num 数值是5,直接定义到5,执行对应的程序内容
不会做过多的判断,效率就比if判断的效率高
switch(变量){
case 变量的数值1:
执行的对应的程序1
break;
case 变量的数值2:
执行的对应的程序2
break;
case 变量的数值3:
执行的对应的程序3
break;
..... 可以无限写
default:
执行的对应的程序
break;
}
case 是变量对应的数值,要执行的对应程序
对于数值的判断,执行的 === 严格比较 / 全等判断
defalut 对应的是 if语句中的 else
也就是当变量的数值,不满足所有的 case 时 , 执行的程序
break 终止语句
swith默认会从定位的位置开始,执行之后所有的程序
除非遇到break关键词,才会终止程序的执行
因此,每一个case的定位,每一种执行情况,都要配合一个break 做终止
防止程序执行的冲突
最后一个程序,可以不加 break,加不加,看个人习惯
switch (num) {
case 1:
console.log(`随机数是${num},输出的是第一种商品的信息`);
break;
case 2:
console.log(`随机数是${num},输出的是第二种商品的信息`);
break;
case 3:
console.log(`随机数是${num},输出的是第三种商品的信息`);
break;
case 4:
console.log(`随机数是${num},输出的是第四种商品的信息`);
break;
case 5:
console.log(`随机数是${num},输出的是第五种商品的信息`);
break;
default:
console.log('您输入的商品编号有误,无法查询对应的商品信息');
break;
}
if判断 和 swith判断
if判断 : 多用于 判断范围 逻辑表达式 判断的嵌套
switch判断 : 全等判断 switch穿越
随时获取月份 , 输出当月是多少天
随机生成1-12的随机数
var month = parseInt(Math.random()*12+1);
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ){
console.log(`现在是${month}月,这个月有31天`);
}else if(month == 4 || month == 6 || month == 9 || month == 11){
console.log(`现在是${month}月,这个月有30天`);
}else if(month == 2){
console.log(`现在是${month}月,这个月有28天,如果是闰年,是29天`);
}else{
console.log('您的月份输出错误,您过的是地球的日子吗?');
}
swith判断的穿越语法
如果定位是满足第一种情况,会从定位位置,一直向下执行,输出内容,遇到break再停止
也就是 month 等于 1.3.5.7.8.10.12 时,最终穿越到,相同的程序执行
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log(`现在是${month}月,这个月有31天`);
break;
case 4:
case 6:
case 9:
case 11:
console.log(`现在是${month}月,这个月有30天`);
break;
case 2:
console.log(`现在是${month}月,这个月有28天,如果是闰年,是29天`);
break;
default:
console.log('您的月份输出错误,您过的是地球的日子吗?');
break;
}
案例
1,闰年的判断
if判断
生成4位随机数,表示年份 1000-9999
var year = parseInt(Math.random()*(9999-1000+1) + 1000 );
写判断
满足闰年的条件,就输入闰年
if( ( year % 400 == 0 ) || ( (year % 4 == 0) && (year % 100 != 0) ) ){
console.log(`${year}是闰年`);
}else{
不满足闰年的条件
console.log(`${year}是平年`);
}
三元运算符
//
console.log( ( year % 400 == 0 ) || ( (year % 4 == 0) && (year % 100 != 0) ) ? `${year}是闰年` : `${year}是平年` )
//
var res = ( year % 400 == 0 ) || ( (year % 4 == 0) && (year % 100 != 0) ) ? `${year}是闰年` : `${year}是平年`;
console.log( res );
//
( year % 400 == 0 ) || ( (year % 4 == 0) && (year % 100 != 0) ) ? console.log(`${year}是闰年`) : console.log(`${year}是平年`) ;
2.1-100的随机数 — 判断奇数偶数
var n1 = parseInt(Math.random()*(100+1-1) + 1);
if(n1 % 2 == 0){
console.log(`${n1}是偶数`);
}else{
console.log(`${n1}是奇数`);
}
console.log( n1 % 2 == 0 ? `${n1}是偶数` : `${n1}是奇数` );
3.输出 456-789的所有可以被2,3,4整除的数值
var i = 456;
while(i <= 789){
//
if( i % 12 == 0 )
//
if( i % 2 == 0 && i % 3 == 0 && i % 4 == 0 ){
console.log(`${i}可以被2,3,4同时整除`)
}
i++;
}
console.log('')
修改步长
找到第一个可以被2,3,4整除的数值,正好是456
循环变量的初始值,就是456
var i = 456;
while(i <= 789){
console.log(`${i}可以被2,3,4同时整除`)
i += 12;
}