TypeScript if…else 語(yǔ)句

2019-06-21 15:06 更新

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

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

做決定

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

序號(hào)聲明和說(shuō)明
1if語(yǔ)句

一個(gè)“if”語(yǔ)句由Boolean表達(dá)式后跟一個(gè)或多個(gè)語(yǔ)句。

2if... else語(yǔ)句

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

3else......if和嵌套的if語(yǔ)句

您可以在另一個(gè)“if”或“else if”語(yǔ)句中使用一個(gè)“if”或“else if”語(yǔ)句。

4switch語(yǔ)句

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


if語(yǔ)句

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

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

流程圖

如果聲明

示例

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

在編譯時(shí),它會(huì)生成以下JavaScript代碼:

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

上面的例子將打印“number is positive”,因?yàn)?strong>if塊指定的條件為true。

number is positive


if...else語(yǔ)句

if后面可以跟一個(gè)可選的else塊。如果if語(yǔ)句測(cè)試的Boolean表達(dá)式的計(jì)算結(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語(yǔ)句

if塊保護(hù)條件表達(dá)式。如果Boolean表達(dá)式的計(jì)算結(jié)果為true,則執(zhí)行與if語(yǔ)句關(guān)聯(lián)的塊。

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

示例:簡(jiǎn)單的if…else

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

在編譯時(shí),它會(huì)生成以下JavaScript代碼:

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

上面的示例打印變量中的值是偶數(shù)還是奇數(shù)。if塊通過(guò)2來(lái)檢查值的可整除性以確定相同的值。以下是上述代碼的輸出:

Even 


if...else嵌套語(yǔ)句

else…if梯形圖可用于測(cè)試多個(gè)條件。其語(yǔ)法如下:
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 
}

當(dāng)使用if…else…ifelse語(yǔ)句時(shí),需要記住以下幾點(diǎn):

  • 一個(gè)if可以有零個(gè)或一個(gè)else,它必須在任何else..if之后。

  • 一個(gè)if可以有零到多個(gè)else..if,并且它們必須在else之前。

  • 一旦else..if成功,剩下的else..ifelse都不會(huì)被測(cè)試。

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

代碼段顯示的值是否為正,負(fù)或零。

在編譯時(shí),它會(huì)生成以下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語(yǔ)句

switch語(yǔ)句計(jì)算表達(dá)式,將表達(dá)式的值與case子句匹配,并執(zhí)行與該case相關(guān)的語(yǔ)句。
switch(variable_expression) { 
   case constant_expr1: { 
      //statements; 
      break; 
   } 
   case constant_expr2: { 
      //statements; 
      break; 
   } 
   default: { 
      //statements; 
      break; 
   } 
} 

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

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

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

  • case語(yǔ)句只能包含常量。它不能是變量或表達(dá)式。

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

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

  • case表達(dá)式必須是唯一的。

  • 默認(rèn)的塊是可選的。

流程圖

開關(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;              
   } 
}

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

在編譯時(shí),它會(huì)生成以下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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)