控制语句
控制语句是对应程序的一个控制,它分为对应的条件控制语句和循环控制语句
条件控制语句是根据对应的条件来执行对应的代码,循环控制语句是根据对应的条件来执行多次重复的
代码
条件控制语句
常见的控制语句
if else (根据对应的boolean条件值来进行判断 也就是说你传入的条件返回的不是boolean 它会
转为对应的boolean类型)
switch case (根据对应的值来进行比对 里面采用的是=== 会自动进行比对)0
if else讲解
if(条件表达式){
对应满足条件执行的代码
}else{
不满足条件执行的代码
}
示例
//判断输入一个数值是奇数还是偶数
var number = prompt('请输入一个数值') //浏览器的一个弹窗 里面可以输入对应的内容 这个内容会返回给你 类型是字符串
// console.log(`number`, number);
// if(number%2==0){
// console.log(`当前输入的是偶数`);
// }else{
// console.log(`当前输入的是奇数`);
// }
//如果返回的值不是一个boolean类型的值 自动转为boolean类型
if(number%2){//如果为0就是false
console.log(`当前输入的是奇数`);
}else{
console.log(`当前输入的是偶数`);
}
多分支结构(else if)
多分支结构只有上面有一个满足了条件 下面的都将不会再运行
if(条件1){
满足条件执行的代码
}else if(条件二){
满足条件执行的代码
}...
else{
所有条件都不满足执行的代码
}
示例
//判断输入一个数值是奇数还是偶数
var number = prompt('请输入一个数值') //浏览器的一个弹窗 里面可以输入对应的内容 这个内容会
返回给你 类型是字符串
console.log(`number`, number);
// if(!(number%2) && number%2!=0){ //如果是NaN 不是0
// console.log(`当前输入出错`);
// }else if(number%2==0){
// console.log('当前是偶数');
// }else{
// console.log('当前是奇数');
// }
// if(isNaN(number%2)){ //如果是NaN
// console.log(`当前输入出错`);
// }else if(number%2==0){
// console.log('当前是偶数');
// }else{
// console.log('当前是奇数');
// }
//利用NaN加任意数值得到都是NaN
if(!(number%2+Infinity)){ //如果是NaN
console.log(`当前输入出错`);
}else if(number%2==0){
console.log('当前是偶数');
}else{
console.log('当前是奇数');
}
if else的嵌套
if else允许多层嵌套的
if(条件1){
if(子条件1){
满足子条件1执行的代码
...
}else if(子条件2){
满足子条件2执行的代码
}else{
不满足子条件执行的代码
}
}else{
不满足条件1执行的代码
}
示例
//输入一个值判断奇偶
var number = prompt()
//判断是否输入出错
if(number == ''){
console.log('输入内容不允许为空');
}else if(!isNaN(Number(number))){
//当前不是NaN
if(number%2==0){
console.log('当前为偶数');
}else{
console.log('当前为奇数');
}else{
//当前是NaN的情况
console.log('输入错误');
}
if else 支持多层嵌套 一般我们的嵌套不会超过俩层
if else 一些简化操作
当你的if 块和或者else块只有一行代码的时候是可以省略{}的
if(1>2)
console.log('你好')
else if(2>3)
console.log('世界')
else
console.log('hello world')
每句代码的结束是可以有分号 可以没有分号的 但是一般建议加上;(后续我们需要减少对应的编写的文
件的大写我们会把所有的js在一行)
switch case
switch(值表达式){
case 值1:
执行的代码
break;
case 值2:
执行的代码
break;
defulat:
上面都不满足 执行的代码
}
示例
//根据输入的值判断对应的执行的操作
// 1 打印游戏 2 打印睡觉 3 打印吃饭
var number = prompt() //字符串
//switch里面采用的是=== 类型必须相等
//在switch 如果没有break 他会从满足条件那句开始直到最后
//break 退出 当前这个switch不执行了
switch(number){
case"1":
console.log("游戏")
case"2":
console.log("睡觉")
case"3":
console.log("吃饭")
default:
console.log('活着');
}
switch支持多个值
switch(number){
case"1":
console.log("游戏")
case"2":
console.log("睡觉")
case"3": case"4" case"5"
console.log("吃饭")
default:
console.log('活着');
}
switch支持嵌套
switch (1) {
case 1:
switch (2) {
case 2:
console.log('我是2');
break;
default:
console.log('hello');
}
break;
default:
console.log('default');
}
if else 和switch的对比
if else 常用于区间判断 switch case用于值判断(枚举判断)
if else的效率低于switch case(用空间换时间)如果当前只有某个值的判断建议使用switch
总结
if else 是用于区间判断 switch case是用于值判断
switch case里面使用的判断是恒等判断 (支持所有类型的值)
if else 支持嵌套 switch case也支持嵌套 (一般建议不要嵌套俩层以上)
if 可以单独用
if 的多分枝采用 else if来实现
对应的switch 里面的多分支采用多个case连用
if (else if 、else)后面的代码如果只有一行那么可以省略{} 但是我们一般不建议省略
if 里面的条件表达式返回的是对应的boolean类型的值 如果当前的式子不是条件表达式 他会自动
转换boolean类型
if else的效率低于switch case(用空间换时间)如果当前只有某个值的判断建议使用switch(枚举
上一般使用switch)