如何在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。