TypeScript if…else 语句

2019-06-21 15:06 更新

决策结构要求程序员指定由程序进行评估或测试的一个或多个条件,以及在条件被确定为true时要执行的一个或多个语句,以及如果条件被确定为false,则可以选择执行其他语句。

下面显示的是大多数编程语言中的典型决策结构的一般形式:

做决定

决策构造在执行指令之前评估条件。TypeScript中的决策结构分类如下:

序号声明和说明
1if语句

一个“if”语句由Boolean表达式后跟一个或多个语句。

2if... else语句

一个'if'语句后面可以跟一个可选的'else'语句,该语句在Boolean表达式为false时执行。

3else......if和嵌套的if语句

您可以在另一个“if”或“else if”语句中使用一个“if”或“else if”语句。

4switch语句

一个'switch'语句允许根据值列表测试变量。


if语句

'if ... else'结构在执行代码块之前评估条件。
if(boolean_expression) {
   // statement(s) will execute if the boolean expression is true  
} 

如果Boolean表达式的计算结果为true,那么将执行if语句中的代码块。如果Boolean表达式的计算结果为false,那么将执行if语句结束后(在结束大括号之后)的第一组代码。

流程图

如果声明

示例

var  num:number = 5
if (num > 0) { 
   console.log("number is positive") 
}

在编译时,它会生成以下JavaScript代码:

//Generated by typescript 1.8.10
var num = 5;
if (num > 0) {
   console.log("number is positive");
}

上面的例子将打印“number is positive”,因为if块指定的条件为true。

number is positive


if...else语句

if后面可以跟一个可选的else块。如果if语句测试的Boolean表达式的计算结果为false,则执行else块。
if(boolean_expression) {  
   // statement(s) will execute if the boolean expression is true
} else {
   // statement(s) will execute if the boolean expression is false  
}

流程图

如果else语句

if保护条件表达式。如果Boolean表达式的计算结果为true,则执行与if语句关联的块。

if后面可以跟一个可选的else语句。如果表达式的计算结果为false,则执行与else块关联的指令块。

示例:简单的if…else

var num:number = 12; 
if (num % 2==0) { 
   console.log("Even"); 
} else {
   console.log("Odd"); 
}

在编译时,它会生成以下JavaScript代码:

//Generated by typescript 1.8.10
var num = 12;
if (num % 2 == 0) {
   console.log("Even");
} else {
   console.log("Odd");
}

上面的示例打印变量中的值是偶数还是奇数。if块通过2来检查值的可整除性以确定相同的值。以下是上述代码的输出:

Even 


if...else嵌套语句

else…if梯形图可用于测试多个条件。其语法如下:
if (boolean_expression1) { 
   //statements if the expression1 evaluates to true 
} else if (boolean_expression2) { 
   //statements if the expression2 evaluates to true 
} else { 
   //statements if both expression1 and expression2 result to false 
}

当使用if…else…ifelse语句时,需要记住以下几点:

  • 一个if可以有零个或一个else,它必须在任何else..if之后

  • 一个if可以有零到多个else..if,并且它们必须在else之前

  • 一旦else..if成功,剩下的else..ifelse都不会被测试。

示例:else...if阶梯

var num:number = 2 
if(num > 0) { 
   console.log(num+" is positive") 
} else if(num < 0) { 
   console.log(num+" is negative") 
} else { 
   console.log(num+" is neither positive nor negative") 
}

代码段显示的值是否为正,负或零。

在编译时,它会生成以下JavaScript代码 -

//Generated by typescript 1.8.10
var num = 2;
if (num > 0) {
   console.log(num + " is positive");
} else if (num < 0) {
   console.log(num + " is negative");
} else {
   console.log(num + " is neither positive nor negative");
}

这里是上面的代码的输出 -

2 is positive

switch语句

switch语句计算表达式,将表达式的值与case子句匹配,并执行与该case相关的语句。
switch(variable_expression) { 
   case constant_expr1: { 
      //statements; 
      break; 
   } 
   case constant_expr2: { 
      //statements; 
      break; 
   } 
   default: { 
      //statements; 
      break; 
   } 
} 

针对switch中的所有情况测试variable_expression的值。如果变量与其中一种情况匹配,则执行相应的代码块。如果没有case表达式与variable_expression的值匹配,则将关联默认块中的代码。

以下规则适用于switch语句:

  • switch中可以有任意数量的case语句。。

  • case语句只能包含常量。它不能是变量或表达式。

  • variable_expression和常量表达式的数据类型必须匹配。

  • 除非你在每个代码块之后放置一个break,否则执行会流入下一个块。

  • case表达式必须是唯一的。

  • 默认的块是可选的。

流程图

开关外壳声明

示例:switch...case

var grade:string = "A"; 
switch(grade) { 
   case "A": { 
      console.log("Excellent"); 
      break; 
   } 
   case "B": { 
      console.log("Good"); 
      break; 
   } 
   case "C": {
      console.log("Fair"); 
      break;    
   } 
   case "D": { 
      console.log("Poor"); 
      break; 
   }  
   default: { 
      console.log("Invalid choice"); 
      break;              
   } 
}

这个例子根据常量集(A,B,C,D和E)验证变量等级的值,并执行相应的块。如果变量中的值与上面提到的任何常量都不匹配,则将执行默认块。

在编译时,它会生成以下JavaScript代码:

//Generated by typescript 1.8.10
var grade = "A";
switch (grade) {
   case "A": {
      console.log("Excellent");
      break;
   }
	
   case "B": {
      console.log("Good");
      break;
   }
	
   case "C": {
      console.log("Fair");
      break;
   }
	
   case "D": {
      console.log("Poor");
      break;
   }
	
   default: {
      console.log("Invalid choice");
      break;
   }
}

上面的代码将产生以下输出: 

Excellent
以上内容是否对您有帮助:
前端课程
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部