当前位置: 首页 > 面试题库 >

在不使用“ if”的情况下执行此操作| if(s ==“ value1”){…}否则if(s ==“ value2”){…}

乐正心水
2023-03-14
问题内容

根据反if运动,最好的做法是在我们的代码中不要使用if。谁能告诉我是否有可能摆脱这段代码中的if?(切换也不是一种选择,
重点是删除条件逻辑,而不是用类似的语言构造替换ifs

if(s == "foo")
{
    Writeln("some logic here");
}
else if(s == "bar")
{
    Writeln("something else here");
}
else if(s == "raboof")
{
    Writeln("of course I need more than just Writeln");
}

(语言:Java或C#)


问题答案:

利用策略模式。

用Java术语:

public interface Strategy {
    void execute();
}

public class SomeStrategy implements Strategy {
    public void execute() {
        System.out.println("Some logic.");
    }
}

使用方法如下:

Map<String, Strategy> strategies = new HashMap<String, Strategy>();
strategies.put("strategyName1", new SomeStrategy1());
strategies.put("strategyName2", new SomeStrategy2());
strategies.put("strategyName3", new SomeStrategy3());

// ...

strategies.get(s).execute();


 类似资料:
  • 我对if/elif语句有这个烦人的问题。我是新手,抱歉愚蠢的问题。我试图找到一个修复,但没有人有它的Python。所以,如果两个条件都是True,我希望程序执行子句中的代码。据我所知,只有当两个条件都为True时,子句中的代码才会执行,对吗?不过,这在我的代码中似乎没有发生。 因此,和变量之前就已经设置好了。在这个游戏中,发生的是:用户选择偶数或奇数,并输入一个从0到5的数字。然后,计算机使用从0

  • 我有以下代码: 它工作正常,但我想改进它,并写为简化和可读性,如果其他块。这将是很好的,如果我能使一行如果其他声明请建议。

  • 我有以下代码: 它工作得很好,但是我想改进它,把它写成简化的、可读的if else块。如果我能做一行if else语句请建议,那就好了。

  • 检查变量的内容是否匹配列表中的某项。 if Var in MatchList if Var not in MatchList if Var contains MatchList if Var not contains MatchList 参数 Var 需要被检查的 变量 名称. 对于 "in" 运算符, 需要准确匹配列表中的某项. 对于 "contains" 运算符, 会更容易形成匹配: 只要列

  • 如果这是存在的,这个函数很快完成,但如果上面不存在,那么它运行很长时间。 有人能帮我解决这个问题吗?这样检查就可以很快进行了?

  • 本文向大家介绍C# if, if...else, if... else if ,包括了C# if, if...else, if... else if 的使用技巧和注意事项,需要的朋友参考一下 示例 该if语句用于控制程序的流程。一条if语句根据Boolean表达式的值标识要运行的语句。 对于单个语句,braces{}是可选的,但建议使用。 该if还可以有一个else条款,将在案件条件的计算结果来执