如何在TypeScript中使用switch语句覆盖多个if-else条件?


在本教程中,我们将学习如何使用TypeScript中的switch case语句来覆盖多个if-else条件。单个if-else语句用于执行条件语句。如果条件为真,则执行if块的语句;否则,控制权将回退到else块并执行其语句。

在某些情况下,开发者需要根据不同的条件执行代码块。为此,他们需要编写多个if-else语句或if-else语句的阶梯结构。在这里,我们将把这些if-else语句阶梯结构转换为switch case语句。

将If-else条件转换为TypeScript中的Switch语句

这里,我们取了一个年龄数组,并根据人的年龄显示不同的词语,使用了if-else阶梯结构。

// Array of ages
let ages: Array<number> = [32, 5, 12, 34, 54, 65, 76];
// if-else ladder for different range of edges
for (let age of ages) {
   if (age <= 10) {
      // print childern
   } else if (age > 10 && age <= 20) {
      // print younger
   } else if (age > 20 && age <= 60) {
      // print mature man
   } else {
      // print old man
   }
}

现在,我们将上面的if-else阶梯结构转换为switch case语句。switch case语句将值作为参数,我们为此创建了不同的case。这里,我们使用不同的case的条件,这些条件返回布尔值。因此,我们将'true'布尔值作为switch case的参数。

// Array of ages
let ages: Array<number> = [32, 5, 12, 34, 54, 65, 76];
// Switch case statement for different range of edges
for (let age of ages) {
   switch (true) {
      case age <= 10:
      // print children
      break;
      case age > 10 && age <= 20:
      // print younger
      break;
      case age > 20 && age <= 60:
      // print mature man
      break;
      default:
      // print old man
   }
}

在上面的语法中,我们对不同年龄的case使用了switch case语句。

示例1

在下面的示例中,我们创建了一个包含从0到80的不同数字的年龄数组。之后,我们使用for循环迭代数组元素,并对每个元素评估switch case语句。

此外,用户可以看到我们使用了break关键字来中断语句,以及default case,它等于if-else阶梯结构中的最后一个else块。在输出中,用户可以看到它根据年龄的值打印不同的词语。

let ages: Array<number> = [32, 5, 12, 34, 54, 65, 76];
for (let age of ages) {
   switch (true) {
      case age <= 10:
         console.log(age + " = child");
         break;
      case age > 10 && age <= 20:
         console.log(age + " = younger");
         break;
      case age > 20 && age <= 60:
         console.log(age + " = mature man");
         break;
      default:
      console.log(age + " =  old man");
   }
}

编译后,它将生成以下JavaScript代码:

var ages = [32, 5, 12, 34, 54, 65, 76];
for (var _i = 0, ages_1 = ages; _i < ages_1.length; _i++) {
   var age = ages_1[_i];
   switch (true) {
      case age <= 10:
         console.log(age + " = child");
         break;
      case age > 10 && age <= 20:
         console.log(age + " = younger");
         break;
      case age > 20 && age <= 60:
         console.log(age + " = mature man");
         break;
      default:
         console.log(age + " =  old man");
   }
}

输出

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

32 = mature man
5 = child
12 = younger
34 = mature man
54 = mature man
65 =  old man
76 =  old man

示例2

在下面的示例中,我们创建了一个名为Websites的枚举,其中包含不同的网站。之后,我们创建了一个名为web的变量,它包含来自枚举的'TutorialsPoint'网站的值。

getWebsites()函数使用switch case语句根据web变量的值打印值。基本上,用户可以从下面的示例中学习如何在switch case语句中使用枚举值。

// Creating the enum for different sites
enum Websites {
   TutorialsPoint,
   Tutorix,
}
// Creating the web variable containing the value TutorialsPoint
var web: Websites = Websites.TutorialsPoint;

// function containing the switch case statement
function getWebsites() {
   // Switch case statement for web variable
   switch (web) {
      case Websites.TutorialsPoint:
         console.log("You are on TutorialsPoint Website.");
         break;
      case Websites.Tutorix:
         console.log("You are on Tutorix Website.");
         break;
   }
}

getWebsites(); // get websites

编译后,它将生成以下JavaScript代码:

// Creating the enum for different sites
var Websites;
(function (Websites) {
   Websites[Websites["TutorialsPoint"] = 0] = "TutorialsPoint";
   Websites[Websites["Tutorix"] = 1] = "Tutorix";
})(Websites || (Websites = {}));
// Creating the web variable containing the value TutorialsPoint
var web = Websites.TutorialsPoint;
// function containing the switch case statement
function getWebsites() {
   // Switch case statement for web variable
   switch (web) {
      case Websites.TutorialsPoint:
         console.log("You are on TutorialsPoint Website.");
            break;
      case Websites.Tutorix:
         console.log("You are on Tutorix Website.");
            break;
   }
}
getWebsites(); // get websites

输出

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

You are on TutorialsPoint Website.

在这个TypeScript教程中,用户学习了如何将if-else阶梯结构转换为switch case语句。在第一个示例中,用户学习了如何使用条件语句作为switch语句的case。在第二个示例中,用户学习了如何使用枚举值作为switch语句的case。

此外,用户还学习了如何在TypeScript中使用break和default关键字与switch case。

更新于:2022年12月19日

2K+浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告