4.1 if语句
如果……否则…… , 让程序出现分支
1 <script type="text/javascript"> 2 var a = 8; 3 if(a >= 60){ 4 alert("及格了"); 5 }else{ 6 alert("不及格"); 7 } 8 </script> |
语法:
1 if(测试表达式){ 2 测试表达式为真执行的语句 3 }else{ 4 测试表达式为假执行的语句 5 } |
if英语里面的如果的意思,else就是否则的意思。else不要拼写为eles。
在语法层面有两个特例:
① 可以没有else部分
1 var a = 1; 2 if(a >= 60){ 3 alert("及格了"); 4 } |
② 如果要执行的语句,只有一行语句,那么就是单行if,就可以省略大括号。
1 var a = 112; 2 if(a >= 60) 3 alert("及格了"); 4 else 5 alert("不及格"); |
// 最基本的if语句
// var a = 8;
// if(a >= 60){
// alert("及格了");
// }else{
// alert("不及格");
// } // 可以省略else部分
// var a = 1;
// if(a >= 60){
// alert("及格了");
// } // 如果结构体中只有单行语句,那么可以省略大括号
// var a = 112;
// if(a >= 60)
// alert("及格了");
// else
// alert("不及格"); // 搞清楚哪些语句在结构体中,哪些不在
var a = 77;
if(a > 30){
console.log("哈哈");
console.log("嘻嘻");
console.log("呵呵");
}else{
console.log("纳尼");
console.log("呸呸")
}
console.log("么么哒"); //一定执行,因为在if结构体外面。
注意if语句是一个结构体,注意哪些语句是在结构体中,哪些语句不是结构体:
1 var a = 355; 2 if(a > 30){ 3 console.log("哈哈"); 4 console.log("嘻嘻"); 5 console.log("呵呵"); 6 }else{ 7 console.log("纳尼"); 8 console.log("呸呸") 9 } 10 console.log("么么哒"); /*一定会执行,在if结构体外面*/ |
如果a是3,不满足条件:
小练习:用户输入一个年龄,判断用户能不能考取驾照。交规说: 大于等于18,小于等于70才能考取驾照。
1 //让用户输入年龄 2 var age = parseInt(prompt("请输入年龄")); 3 //判断 4 if(age >= 18 && age <= 70){ 5 alert("可以考取驾照"); 6 }else{ 7 alert("年龄不符合要求"); 8 } 9 alert("谢谢惠顾"); |
//让用户输入年龄
var age = parseInt(prompt("请输入年龄"));
//判断
if(age >= 18 && age <= 70){
alert("可以考取驾照");
}else{
alert("年龄不符合要求");
}
alert("谢谢惠顾");
多分支的if
if……else if …… else if…… else if…… else ……
如果……否则如果……否则如果……否则如果……否则……
跳楼现象,用户会选择一个分支执行(跳楼),选择这个分支了,就暗含了上一个分支没有满足:
1 2 3 4 5 6 7 8 9 10 11 |
语法:
1 2 3 4 5 6 7 8 |
// var score = 66; // if(score >= 85){
// alert("优秀");
// }else if(score >= 70){
// alert("良好");
// }else if(score >= 60){
// alert("及格");
// }else{
// alert("不及格")
// } //错误的写法!
// var score = 100;
// if(score >= 0){
// alert("不及格");
// }else if(score >= 60){
// alert("及格");
// }else if(score >= 75){
// alert("良好");
// }else(score >= 85){
// alert("优秀");
// } // var score = 100;
// if(score <= 60){
// alert("不及格");
// }else if(score <= 75){
// alert("及格");
// }else if(score <= 85){
// alert("良好");
// }else{
// alert("优秀");
// } //语句且"仅"会选择一条路走。
var a = 6;
if(a < 8){
a = a + 3; //a<8条件满足,所以执行,跳楼!
}else if(a == 9){
a = a + 4; //不执行
}else if(a == 13){
a = a + 5; //不执行
}else if(a == 18){
a = a + 6; //不执行
}
console.log(a); //
if语句的嵌套:
用户先输入自己的性别,比如男、女。然后输入自己的年龄。判断能否结婚。
男的22以上
女的20以上
if语句可以嵌套,如果里面再套一层如果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
楼层中else只能有一个。 else if可以有多个。
//用户先输入自己的性别,比如男、女。然后输入自己的年龄。判断能否结婚
//先输入性别
var sex = prompt("请输入性别","男");
var age = parseInt(prompt("请输入年龄")); // //判断
if(sex == "男"){
//男
if(age >= 22){
alert("男同志你好,可以结婚");
}else{
alert("你还是个小正太,不能结婚!");
}
}else if(sex == "女"){
//女
if(age >= 20){
alert("女同志你好,可以结婚");
}else{
alert("你还是个小萝莉,不能结婚!");
}
}else{
alert("你输入的不是正确的性别!!");
} //方法2:
// if(sex == "男" && age >= 22){
// alert("男同志你好,可以结婚");
// }else if(sex == "男" && age < 22){
// alert("你还是个小正太,不能结婚!");
// }else if(sex == "女" && age >= 20){
// alert("女同志你好,可以结婚");
// }else if(sex == "女" && age < 20){
// alert("你还是个小萝莉,不能结婚!");
// }