【问题标题】:What control flow suits "if A, then do a; if B, then do a, b; if C, then do a, b, c ..." [closed]什么控制流适合“如果 A,则执行 a;如果 B,则执行 a、b;如果 C,则执行 a、b、c ...”[关闭]
【发布时间】:2015-05-01 18:29:14
【问题描述】:

在 C 语言中,级联 switch 语句可用于轻松实现此流程:

switch (var) {
    case c: C();
    case b: B();
    case a: A();
    default: // no op
}

是否有其他编程语言支持此流程的替代方案?例如。在 Python、Java 中?

【问题讨论】:

  • Java 有相同的 switch 语句。您已经编写了合法的 Java。
  • 我不明白这个问题。它的方式很广泛。什么定义了可接受的答案?这是一个用尽可能多的语言展示这个简单的 sn-p 的 Rosetta 代码页的游戏吗?
  • 这个问题的字面答案是,“是的,有。”。
  • 我认为您的代码与您的标题不匹配。代码说:“如果a,做A(),B(),C(),如果b,做B(),C(),如果c,做C()。”
  • @fge 在一种为简单而设计的语言中,人们可能会合理地提出反对意见。 switch 一定是为了向所有切换到 Java 的 C 开发人员致敬。

标签: java python c control-flow


【解决方案1】:

您可以使用具有 if 语句和逻辑 OR 运算符(将是所有这些)的任何语言支持该流程

flow = 0;

if ( var == a ) {
   A();
   flow = 1;
}

if ( flow || var == b ) {
   B();
   flow = 1;
}

if ( flow || var == c ) {
   C();
   flow = 1;
}

// and so on

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2022-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 2016-05-02
    相关资源
    最近更新 更多