CoffeeScript - switch 语句

switch 语句允许测试变量是否与值列表相等。 每个值都称为一个case,并且会针对每个switch case 检查正在打开的变量。 以下是 JavaScript 中 switch 的语法。

switch (expression){
   case condition 1: statement(s)
   break;   
   
   case condition 2: statement(s)
   break;
      
   case condition n: statement(s)
   break;
   
   default: statement(s)
}

在 JavaScript 中,在每个 switch case 之后,我们必须使用 break 语句。 如果我们不小心忘记了 break 语句,那么就有可能从一个 switch case 掉到另一个。


CoffeeScript 中的 Switch 语句

CoffeeScript 通过使用 switch-when-else 子句的组合解决了这个问题。 这里我们有一个可选的 switch 表达式,后跟 case 语句。

每个 case 语句都有两个子句 whenthenwhen 后跟条件,then 后跟满足特定条件时要执行的语句集。 最后,我们有可选的 else 子句,它包含默认条件下的操作。

语法

下面给出了 CoffeeScript 中 switch 语句的语法。 我们指定不带括号的表达式,并通过保持适当的缩进来分隔 case 语句。

switch expression
   when condition1 then statements
   when condition2 then statements
   when condition3 then statements
   else statements

流程图

CoffeeScript switch 语句

示例

以下示例演示了 CoffeeScript 中 switch 语句的用法。 将此代码保存在名为 switch_example.coffee 的文件中

name="Ramu"
score=75
message = switch 
   when score>=75 then "Congrats your grade is A"
   when score>=60 then "Your grade is B"
   when score>=50 then "Your grade is C"
   when score>=35 then "Your grade is D"
   else "Your grade is F and you are failed in the exam"
console.log message

打开命令提示符并编译.coffee 文件,如下所示。

c:\> coffee -c switch_exmple.coffee

在编译时,它会提供以下 JavaScript。

// Generated by CoffeeScript 1.10.0
(function() {
  var message, name, score;

  name = "Ramu";

  score = 75;

  message = (function() {
    switch (false) {
      case !(score >= 75):
        return "Congrats your grade is A";
      case !(score >= 60):
        return "Your grade is B";
      case !(score >= 50):
        return "Your grade is C";
      case !(score >= 35):
        return "Your grade is D";
      default:
        return "Your grade is F and you are failed in the exam";
    }
  })();

  console.log(message);

}).call(this);

现在,再次打开命令提示符并运行 CoffeeScript 文件 −

c:\> coffee switch_exmple.coffee

执行时,CoffeeScript 文件产生以下输出。

Congrats your grade is A

when 子句的多个值

我们还可以为单个 when 子句指定多个值,方法是在 switch case 中使用逗号 (,) 分隔它们。

示例

以下示例展示了如何通过为 when 子句指定多个值来编写 CoffeeScript switch 语句。 将此代码保存在名为 switch_multiple_example.coffee 的文件中

name="Ramu"
score=75
message = switch name
   when "Ramu","Mohammed" then "You have passed the examination with grade A"
   when "John","Julia" then "You have passed the examination with grade is B"
   when "Rajan" then "Sorry you failed in the examination"
   else "No result"
console.log message

打开命令提示符并编译.coffee 文件,如下所示。

c:\> coffee -c switch_multiple_example.coffee

在编译时,它会提供以下 JavaScript。

// Generated by CoffeeScript 1.10.0
(function() {
  var message, name, score;

  name = "Ramu";

  score = 75;

  message = (function() {
    switch (name) {
      case "Ramu":
      case "Mohammed":
        return "You have passed the examination with grade A";
      case "John":
      case "Julia":
        return "You have passed the examination with grade is B";
      case "Rajan":
        return "Sorry you failed in the examination";
      default:
        return "No result";
    }
  })();

  console.log(message);

}).call(this);

现在,再次打开命令提示符 并运行 CoffeeScript 文件,如下所示。

c:\> coffee switch_multiple_example.coffee

执行时,CoffeeScript 文件产生以下输出。

You have passed the examination with grade A 

❮ CoffeeScript - 条件语句