ECMAScript/ES6决策定制

ECMAScript/ES6决策定制

ES6条件语句用于根据各种条件执行不同的操作。 条件语句在执行指令之前评估条件。在编写代码时,我们需要针对不同的决定执行不同的操作。 可以通过使用条件语句来执行它。

1.条件语句的类型

JavaScript中的条件语句如下所示:

  • if语句
  • if….else语句
  • if….else if….语句
  • 嵌套if语句
  • switch语句

让我们尝试详细说明这些条件语句。

1.1. if语句

它是最简单的决策语句之一,用于确定在特定条件为真时将执行JavaScript代码块,否则直接跳过。

语法

if (condition) {  
  // block of code will execute if the condition is true  
}

如果条件的计算结果为true,则执行if语句中的代码,但是如果条件的计算结果为false,则将执行if语句结束之后(大括号关闭之后)的代码。

注意:if语句必须用小写字母书写。 使用大写字母(IfIF)将导致JavaScript错误。

if语句的流程图如下:

if语句

示例代码:

var  x = 78;  
if (x>70) {   
   console.log("x is greater")   
}

执行上面示例代码,得到以下结果:

x is greater

1.2.if….else语句

if...else语句包含两个块,分别是if块和else块。 这是控制语句的下一种形式,它允许以更受控制的方式执行JavaScript。 当需要检查两个不同的条件并执行一组不同的代码时,可以使用它。 如果条件为假,则执行else语句中代码块。

语法

if (condition)  
 {  
  // block of code will execute if the condition is true  
}  
 else  
 {  
  // block of code will execute if the condition is false  
}

如果条件为true,则将执行if块中的语句,但如果条件为false,则将执行else块的语句。

流程图如下所示:

if….else语句

下面来看看下面示例代码,演示如何使用 if….else statement 语句:

var x = 40, y=20;   
if (x < y)   
{   
   console.log("y is greater");   
}   
else   
{   
   console.log("x is greater");   
}

执行上面示例代码,得到以下结果:

x is greater

1.3.if….else if…..else语句

它用于测试多个条件。 if语句可以有多个或零个else if语句,并且必须在使用else语句之前使用else if语句。需要注意的是:else语句必须位于else if语句之后。

语法

if (condition1)   
{  
  //  block of code will execute if condition1 is true  
}  
 else if (condition2)   
{  
  //  block of code will execute if the condition1 is false and condition2 is true  
}   
else   
{  
  //  block of code will execute if the condition1 is false and condition2 is false  
}

示例:

var a = 10, b = 20, c = 30;   
if( a > b && a > c) {   
   console.log("a is greater");   
} else if( b > a && b > c ) {   
    console.log("b is greater");   
} else {   
    console.log("c is greater");   
}

执行上面示例代码,得到以下结果:

c is greater

1.4.嵌套if语句

嵌套if语句表示一个if语句嵌套在另一个if语句之内。

if (condition1)   
{   
    Statement 1; //It will execute when condition1 is true  
    if (condition2)  
    {   
        Statement 2; //It will execute when condition2 is true  
    }else  
    {  
        Statement 3; //It will execute when condition2 is false  
    }  
}

示例代码

var num = 20;  
if (num > 10)  
{  
    if (num%2==0){
        console.log( num+ " is greater than 10 and even number");  
    }else{  
        console.log(num+ " is greater than 10 and odd number");  
    }
}  
else  
{  
    console.log(num+" is smaller than 10");  
}  
console.log("After nested if statement");

执行上面示例代码,得到以下结果:

20 is greater than 10 and even number
After nested if statement

1.5.switch语句

switch语句是一个多向分支语句,也用于决策目的。在某些情况下,switch语句比if-else语句更方便。它主要在所有分支都取决于单个变量的值时使用。它根据不同的情况执行一个代码块。

switch语句使用breakdefault关键字,但它们都是可选的。下面是这两个关键字的说明:

  • break:在switch语句中用于终止语句序列。它是可选的。如果省略它,那么将在每个语句上继续执行。当使用它时,它将停止该块内的执行。
  • default:它指定没有大小写匹配时要运行的一些代码。switch语句中只能有一个默认关键字。它也是可选的,但是建议使用它,因为它可以处理意外情况。

如果在某些情况下传递给switch的条件与任何值都不匹配,则将执行默认情况下的语句。

需要注意:

  • switch表达式可以有一个或多个case值。
  • 使用breakdefault关键字是可选的。
  • case语句只能包含常量和文字,不能是表达式或变量。
  • 除非在每个块的代码后面都加一个空格,否则执行将连续流入下一个块。
  • 不必在switch块中最后放置默认块。

语法:

switch(expression){      
    case value1:      
    //code to be executed;      
    break;  //optional    
    case value2:      
    //code to be executed;      
    break;  //optional    
    ......      

    default:       
    code to be executed if all cases are not matched;      
}

switch语句的流程图如下所示:

示例代码

var num = 5;   
switch(num) {   
    case 0 : {   
      console.log("Sunday");   
      break;   
   }   
   case 1 : {   
    console.log("Monday");   
    break;   
 }   
   case 2 : {   
    console.log("Tuesday");   
    break;   
 }      
   case 3 : {   
    console.log("Wednesday");   
    break;   
 }  
   case 4 : {   
    console.log("Thursday");   
    break;   
 }   
   case 5 : {   
    console.log("Friday");   
    break;   
 }   
   case 6 : {   
    console.log("Saturday");   
    break;   
 }      
   default: {   
      console.log("无效的值~");   
      break;                
   }   
}

执行上面示例代码,得到以下结果:

Friday