3.条件判断

阅读: 评论:0

3.条件判断

3.条件判断

一、条件判断

条件判断语句指的是根据指定的条件所返回的结果(真或假或其它预定义的),来执行特定的语句。JavaScript 支持两种条件判断语句:switch

语句

当一个逻辑条件为真,用if语句执行一个语句。当这个条件为假,使用可选择的 else 从句来执行这个语句。if 语句如下所示:

if (condition) {statement_1;
}else {statement_2;
} //推荐使用严格的语句块模式,语句else可选

案例:

//判断闰年 得到二月份的天数
var all_days;
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {all_days = 29
} else {all_days = 28
}

条件可以是任何返回结果被计算为true 或 false的表达式。如果条件表达式返回的是 true,statement_1 语句会被执行;否则,statement_2 被执行。statement_1 和 statement_2 可以是任何语句,甚至你可以将另一个if语句嵌套其中。

你也可以组合语句通过使用 else if 来测试连续多种条件判断,就像下面一样:

if (condition_1) {statement_1;
}else if (condition_2) {statement_2;
}else if (condition_n_1) {statement_n;
}else {statement_last;
}

不建议在条件表达式中使用赋值语句,因为在快速查阅代码时容易把它看成等值比较。例如,不要使用下面的代码:

if (x = y) {/*  语句  */
}

如果你需要在条件表达式中使用赋值,通常在赋值语句前后额外添加一对括号。例如:

if ((x = y)) {/* statements here */
}
错误的值

下面这些值将被计算出 false

  • false
  • undefined
  • null
  • 0
  • NaN
  • 空字符串(""

当传递给条件语句所有其他的值,包括所有对象会被计算为真 。

请不要混淆原始的布尔值truefalseBoolean对象的真和假。例如:

var b = new Boolean(false);
if (b) //结果视为真
if (b == true) // 结果视为假

switch 语句

switch 语句允许一个程序求一个表达式的值并且尝试去匹配表达式的值到一个 case 标签。如果匹配成功,这个程序执行相关的语句。switch 语句如下所示:

switch (expression) {case label_1:statements_1[break;]case label_2:statements_2[break;]...default:statements_def[break;]
}

程序首先查找一个与 expression匹配的 case语句,然后将控制权转移到该子句,执行相关的语句。如果没有匹配值, 程序会去找 default语句,如果找到了,控制权转移到该子句,执行相关的语句。如果没有找到 default,程序会继续执行 switch语句后面的语句。default 语句通常出现在switch语句里的最后面,当然这不是必须的。

可选的 break 语句与每个 case 语句相关联, 保证在匹配的语句被执行后程序可以跳出 switch并且继续执行 switch 后面的语句。如果break被忽略,则程序将继续执行switch语句中的下一条语句。

案例:
在如下示例中, 如果 fruittype 等于 “Bananas”, 程序匹配到对应 “Bananas” 的case 语句,并执行相关语句。 当执行到 break 时,程序结束了 switch 并执行 switch 后面的语句。 如果不写 break ,那么程序将会执行 case "Cherries" 下的语句。

switch (fruittype) {case "Oranges":document.write("Oranges are $0.59 a pound.<br>");break;case "Apples":document.write("Apples are $0.32 a pound.<br>");break;case "Bananas":document.write("Bananas are $0.48 a pound.<br>");break;case "Cherries":document.write("Cherries are $3.00 a pound.<br>");break;case "Mangoes":case "Papayas":document.write("Mangoes and papayas are $2.79 a pound.<br>");break;default:document.write("Sorry, we are out of " + fruittype + ".<br>");
}
document.write("Is there anything else you'd like?<br>");

在如下示例中,如果month为1,3,5,7,8,10,12则这个月有31天,如果month为4,6,9,11则这个月有30天,以上都没有进入default判断闰年,得到二月份的天数。

// 所有天数
var all_days = 0;
// 获取年份
var year = Date().getFullYear(); 
// 获取月份
var month = Date().getMonth() + 1;
//得到每个月多少天
switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:all_days = 31break;case 4:case 6:case 9:case 11:all_days = 30break;default://判断闰年 得到二月份的天数if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {all_days = 29} else {all_days = 28}break;
}

本文发布于:2024-01-31 11:45:22,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667272528283.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:条件
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23