TypeScript if…else 語句

2019-06-21 15:06 更新

決策結(jié)構(gòu)要求程序員指定由程序進行評估或測試的一個或多個條件,以及在條件被確定為true時要執(zhí)行的一個或多個語句,以及如果條件被確定為false,則可以選擇執(zhí)行其他語句。

下面顯示的是大多數(shù)編程語言中的典型決策結(jié)構(gòu)的一般形式:

做決定

決策構(gòu)造在執(zhí)行指令之前評估條件。TypeScript中的決策結(jié)構(gòu)分類如下:

序號聲明和說明
1if語句

一個“if”語句由Boolean表達式后跟一個或多個語句。

2if... else語句

一個'if'語句后面可以跟一個可選的'else'語句,該語句在Boolean表達式為false時執(zhí)行。

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

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

4switch語句

一個'switch'語句允許根據(jù)值列表測試變量。


if語句

'if ... else'結(jié)構(gòu)在執(zhí)行代碼塊之前評估條件。
if(boolean_expression) {
   // statement(s) will execute if the boolean expression is true  
} 

如果Boolean表達式的計算結(jié)果為true,那么將執(zhí)行if語句中的代碼塊。如果Boolean表達式的計算結(jié)果為false,那么將執(zhí)行if語句結(jié)束后(在結(jié)束大括號之后)的第一組代碼。

流程圖

如果聲明

示例

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表達式的計算結(jié)果為false,則執(zhí)行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表達式的計算結(jié)果為true,則執(zhí)行與if語句關(guān)聯(lián)的塊。

if塊后面可以跟一個可選的else語句。如果表達式的計算結(jié)果為false,則執(zhí)行與else塊關(guān)聯(lián)的指令塊。

示例:簡單的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");
}

上面的示例打印變量中的值是偶數(shù)還是奇數(shù)。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子句匹配,并執(zhí)行與該case相關(guān)的語句。
switch(variable_expression) { 
   case constant_expr1: { 
      //statements; 
      break; 
   } 
   case constant_expr2: { 
      //statements; 
      break; 
   } 
   default: { 
      //statements; 
      break; 
   } 
} 

針對switch中的所有情況測試variable_expression的值。如果變量與其中一種情況匹配,則執(zhí)行相應(yīng)的代碼塊。如果沒有case表達式與variable_expression的值匹配,則將關(guān)聯(lián)默認塊中的代碼。

以下規(guī)則適用于switch語句:

  • switch中可以有任意數(shù)量的case語句。。

  • case語句只能包含常量。它不能是變量或表達式。

  • variable_expression和常量表達式的數(shù)據(jù)類型必須匹配。

  • 除非你在每個代碼塊之后放置一個break,否則執(zhí)行會流入下一個塊。

  • case表達式必須是唯一的。

  • 默認的塊是可選的。

流程圖

開關(guān)外殼聲明

示例: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;              
   } 
}

這個例子根據(jù)常量集(A,B,C,D和E)驗證變量等級的值,并執(zhí)行相應(yīng)的塊。如果變量中的值與上面提到的任何常量都不匹配,則將執(zhí)行默認塊。

在編譯時,它會生成以下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;
   }
}

上面的代碼將產(chǎn)生以下輸出: 

Excellent
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號