1.if语句:主要的作用还是判断。
形式:if(表达式){
代码块
}
执行过程:判断表达式的结果,为true就执行代码块。
2.if-else语句:2个分支,执行一个
形式;if(表达式){
代码块1;
}else {
代码块2;
}
//练习题;判断一个数是奇数还是偶数
var age = parseInt(prompt("请输入"));
if(age%2){
console.log("这是奇数");
}else{
console.log("这是偶数");
}
3.三元表示式:2个分支只执行一个
语法: var 变量 = 判断条件 ?表达式1:表达式2;
执行过程:如果条件的结果返回的是true,执行表达式1,反之为false,执行表达式2,执行完之后,把结果赋值给变量。
练习题://判断年纪是否成年
var age = parseInt(prompt("请输入年纪")); //prompt接收的是字符串,其实还要判断是否为NaN,不过这有3个分支了
var result = age>17? "已成年":"未成年"; //
console.log(result);
4.if -else if-else...语句
语法: if(判断 条件1){
}else if (判断 条件1){
条件1成立执行的代码块1;
}else if (判断 条件2){
条件2成立执行的代码块2;
}...else{
以上条件都不成立所执行的代码块;
}
//练习题1:分数转换,通过分数判断等级:
var score = Number(prompt("请输入分数")); //通过prompt进来的都是字符串,所以只需要考虑不是数字和空字符串的情况。其他例如null,undefined的情况就不用考虑了。
if(!isNaN(score) && score != ""){ //不是纯数字转换成数字,会显示NaN。空字符串会转换为0;
if (score > 89) {
console.log("A级");
} else if(score>79) {
console.log("B级");
}else if(score>69){
console.log("C级");
}else if(score>59){
console.log("D级");
}else{
console.log("E级");
}
}else{
console.log("请输入数字");
}
//练习题: //判断一个年份是闰年还是平年
//闰年:普通年能被4整除,但不能被100整除的年份 或者 世纪年(就是整百年)能被400整除的年份
var years = parseInt(prompt("请输入年份"));
if(!isNaN(years)){
if(years%4==0 && years%100!=0 || years%400 == 0){
console.log(years+"是闰年");
}else{
console.log(years+"是平年");
}
}else{
console.log("请输入年份")
}
5、switch-case语句
语法:
switch(标准值){
case值1:
判断的值和值1相等,就执行的代码块1;
break; //跳出整个语句
case值2:
判断的值和值2相等,就执行的代码块1;
break;
...
default:都不相等的代码块;
}
注意:比较值的时候,是很严格的,必须要数据和数据类型同时相同才行。
//判断等级在哪个分数区间
var level = "A";
switch(level){
case "A":
console.log("在100到90之间");
break;
case "B":
console.log("在90到80之间");
break;
case "C":
console.log("在80到70之间");
break;
case "D":
console.log("在70到60之间");
break;
default:
console.log("在60以下");
}
6.总结:
1.if语句只有一个分支;
2.if -else 语句:2个分支;
3.if-else if-else: 多个分支,最终只会执行一个;
4.switch-case语句:多个分支,最终只会执行一个;
2个多支语句的区别:if可以判断一个范围:所以一般对范围的判断,用if系列;
对具体的值的判断:用switch。