JavaScript常用的if判断与for、while、break、continue循环语句

一、If...Else语句
在写代码时,经常会需要基于不同判断执行不同的动作。可以在代码中使用条件语句来实现这一点。在JavaScript中,我们可使用如下条件语句:
使用 if 来规定要执行的代码块,如果指定条件为 true
使用 else 来规定要执行的代码块,如果相同的条件为 false
使用 else if 来规定要测试的新条件,如果第一个条件为 false
1.if 语句
使用if语句来规定假如条件为true时被执行 JavaScript代码块。
(1)语法
if (条件) {
    如果条件为 true 时执行的代码
注释:if 使用小写字母。大学字母(IF 或 If)会产生 JavaScript 错误。
(2)时间早于18:00,则发出"Good day"的问候:
if (hour < 18) {
    greeting = "Good day";
}
如果时间早于18点,则greeting的结果将是:
Good day
2.else语句
使用else语句来规定假如条件为false时的代码块。
if (条件) {
    条件为 true 时执行的代码块
} else { 
    条件为 false 时执行的代码块
}
(2)如果hour小于18,创建 "Good day" 问候,否则 "Good evening":
if (hour < 18) {
    greeting = "Good day";
 } else {
    greeting = "Good evening";
 } 
greeting 的结果:
Good day
 
3.else if语句
使用else if来规定当首个条件为false时的新条件。
if (条件 1) {
    条件 1 为 true 时执行的代码块
} else if (条件 2) {
    条件 1 为 false 而条件 2 为 true 时执行的代码块
 } else {
    条件 1 和条件 2 同时为 false 时执行的代码块
}
(2)如果时间早于10:00,则创建 "Good morning" 问候,如果不是,但时间早于 18:00,则创建 "Good day" 问候,否则创建 "Good evening":
if (time < 10) {
    greeting = "Good morning";
 } else if (time < 18) {
    greeting = "Good day";
 } else {
    greeting = "Good evening";
 } 
greeting 的结果:
Good morning
 
二、Switch语句
1.JavaScript Switch语句
使用switch语句来选择多个需被执行的代码块之一。
(1)语法
switch(表达式) {
     case n:
        代码块
        break;
     case n:
        代码块
        break;
     default:
        默认代码块
代码解释:
计算一 switch表达式,把表达式的值与每个case的值进行对比,如果存在匹配,则执行关联代码。
(2)使用周名数字来计算周的名称:
switch (new Date().getDay()) {
    case 0:
        day = "星期天";
        break;
    case 1:
        day = "星期一";
         break;
    case 2:
        day = "星期二";
         break;
    case 3:
        day = "星期三";
         break;
    case 4:
        day = "星期四";
         break;
    case 5:
        day = "星期五";
         break;
    case 6:
        day = "星期六";
结果将是:
今天是星期五
说明:
getDay()方法返回0至6之间的周名数字(weekday number)。(Sunday=0, Monday=1, Tuesday=2 ..)
2.break关键词
如果JavaScript遇 break关键词,它会跳出switch代码块。此举将停止代码块中更多代码的执行以及case测试。如果找到匹配,并完成任务,则随机中断执行(break)。无需更多测试。break能够节省大量执行时间,因为它会“忽略” switch 代码块中的其他代码的执行。不必中断switch代码块中的最后一个case。代码块在此处会自然结束。
3.default关键词
(1)default关键词规定不存在case匹配时所运行的代码。
(2)如果今日既不是周六(6)也不是周日(0),则输出一段默认消息:
switch (new Date().getDay()) {
    case 6:
        text = "今天是周六";
        break; 
    case 0:
        text = "今天是周日";
        break; 
    default: 
        text = "期待周末~";
text 的结果是:
期待周末~
(3)默认的case不必是switch代码块中最后一个case:
switch (new Date().getDay()) {
    default: 
        text = "期待周末!";
         break;
    case 6:
        text = "今天是周六";
        break; 
    case 0:
        text = "今天是周日";
如果default不是switch代码块中最后一个case,记得用break结束默认case。
4.常见的代码块
有时会需要不同的case来使用相同的代码。在本例中,case4和5分享相同的代码块,而0和6分享另一段代码块:
switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "周末快到了:)";
        break; 
    case 0:
    case 6:
        text = "今天是周末~";
         break;
    default: 
        text = "期待周末!";
5.Switching 的细节
如果多种case匹配一个case值,则选择第一个case。如果未找到匹配的case,程序将继续使用默认label。如果未找到默认label,程序将继续switch后的语句。
 
6.严格的比较
Switch case使用严格比较(===)。值必须与要匹配的类型相同。只有操作数属于同一类型时,严格比较才能为 true。
在这个例子中,x 将不匹配:
var x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}
 
三、For循环
需要运行代码多次,且每次使用不同的值,那么循环(loop)相当方便使用。JavaScript支持不同类型的循环:for - 多次遍历代码块;for/in - 遍历对象属性。
1.For循环
for循环是在创建循环时经常使用的工具。
for循环的语法如下:
for (语句 1; 语句 2; 语句 3) {
     要执行的代码块
}
语句 1 在循环(代码块)开始之前执行。
语句 2 定义运行循环(代码块)的条件。
语句 3 会在循环(代码块)每次被执行后执行。
实例
for (i = 0; i < 5; i++) {
     text += "数字是 " + i + "<br>";
从上面的代码中,您可以了解到:
语句 1 在循环开始之前设置了一个变量(var i = 0)。
语句 2 定义运行循环的条件(i 必须小于 5)。
语句 3 会在代码块每次执行之后对值进行递增(i++)。
(1)通常,您会使用语句1来初始化循环中所使用的的变量(i = 0)。但情况并不总是这样,JavaScript 不会在意。语句1是可选的。可以在语句 1 中初始化多个值(由逗号分隔):
for (i = 0, len = cars.length, text = ""; i < len; i++) { 
    text += cars[i] + "<br>";
}
还可以省略语句1(比如在循环开始前设置好值):
var i = 2;
var len = cars.length;
var text = "";
for (; i < len; i++) { 
    text += cars[i] + "<br>";
}
(2)通常语句2用于计算初始变量的条件。
但情况并不总是这样,JavaScript 不会在意。语句 2 也是可选的。
如果语句2返回 true,那么循环会重新开始,如果返回false,则循环将结束。
如果省略语句2,那么必须在循环中提供一个break。否则循环永远不会结束。请在下一章阅读更多关于break的内容。
(3)通常语句 3 会递增初始变量的值。
但情况并不总是这样,JavaScript 不会在意。语句3也是可选的。
语句3可做任何事情,比如负递增(i--),正递增(i = i + 15),或者任何其他事情。
语句3也可被省略(比如当您在循环内递增值时):
var i = 0;
var len = cars.length;
for (; i < len; ) { 
    text += cars[i] + "<br>";
      i++;
}
 
2.For/In循环
JavaScript for/in 语句遍历对象的属性:
var person = {fname:"Bill", lname:"Gates", age:62}; 
var text = "";
var x;
for (x in person) {
    text += person[x];
}
 
四、While循环
JavaScript支持不同类型的循环:while - 当指定条件为true时循环一段代码块;do/while - 当指定条件为 true 时循环一段代码块。
1.while
while循环会一直循环代码块,只要指定的条件为true。
语法
while (条件) {
    要执行的代码块
}
在下面的例子中,循环中的代码将运行,一遍又一遍,只要变量(i)小于 10:
while (i < 10) {
    text += "数字是 " + i;
    i++;
}
2.do/while
do/while 循环是while循环的变体。在检查条件是否为真之前,这种循环会执行一次代码块,然后只要条件为真就会重复循环。
语法
do {
    要执行的代码块
}
while (条件);
 
下面的例子使用了do/while循环。该循环会执行至少一次,即使条件为false,因为代码块会在条件测试之前执行:
do {
    text += "The number is " + i;
    i++;
 }
while (i < 10);
3.比较For与While
while循环与for循环相当类似,其中的语句1和语句2都可以省略。循环使用for循环来提取cars数组中的汽车品牌:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
for (;cars[i];) {
    text += cars[i] + "<br>";
    i++;
 
四、JavaScript Break和Continue
break 语句“跳出”循环。
continue 语句“跳过”循环中的一个迭代。
1.Break语句
break语句也可用于跳出循环。break语句会中断循环,并继续执行循环之后的代码(如果有):
for (i = 0; i < 10; i++) {
    if (i === 3) { break; }
    text += "数字是 " + i + "<br>";
}
 
2.Continue 语句
continue语句中断(循环中)的一个迭代,如果发生指定的条件。然后继续循环中的下一个迭代。
for (i = 0; i < 10; i++) {
    if (i === 3) { continue; }
    text += "数字是 " + i + "<br>";
 
3.JavaScript 标签
如需标记JavaScript 语句,将标签名和冒号置于语句之前:
label:
statements
break和continue语句是仅有的可“跳出”代码块的JavaScript 语句。
语法:
break labelname;
continue labelname;
continue 语句(不论有无标签引用)只能用于跳过一个迭代。
break 语句,如果没有标签引用,只能用于跳出一个循环或一个 switch。
如果有标签引用,则 break 语句可用于跳出任意代码块:
var  cars = ["BMW", "Volvo", "Saab", "Ford"];
list: {
    text += cars[0] + "<br>"; 
    text += cars[1] + "<br>"; 
    text += cars[2] + "<br>"; 
    break list;
    text += cars[3] + "<br>"; 
    text += cars[4] + "<br>"; 
    text += cars[5] + "<br>"; 
}
代码块指的是 { 与 } 直接的代码片段。