如何降低此案例的复杂程度?

时间:2017-07-14 20:13:40

标签: code-cleanup

如何降低许多ifs的复杂性来检查相同的值,我试图清理我的代码,我在这种情况下面临非常高的复杂性!
附:它不是如果......其他情况下它只是很多ifs抛出异常!

 void function(String text){
   if(text==null)
    throw new exception();
   if(text.isEmpty())
    throw new Exception();
   if(text=="test")
    throw new Exception();
   ..... }

3 个答案:

答案 0 :(得分:0)

如果text为null或为空,则不必抛出异常,只需退出函数即可。抛出异常代价高昂。我会检查这些条件用“OR”分隔,退出函数是否为真

答案 1 :(得分:0)

由于每个条件都做同样的事情,你可以在同一个if语句中使用它们:

public static void printResults(String userInput, double avgVal) {
    System.out.println("The average of the numbers " + getUserInput() + " is " + calculateAvg(userInput));
}

您不能删除这些案例,因为它们不同。但是,由于我不知道您正在使用的语言,因此可以使用以下内容简化null和isempty检查:“C#中的isNullOrEmpty()”,此外,您应该对test =“test”使用字符串比较。

除非必要,否则最好不要抛出异常。

答案 2 :(得分:0)

你可以这样做:

if (string.IsNullOrEmpty(text)) 
{
    throw new Exception();
}

或者,如果您只希望代码在text不为空或空时执行,则可以执行以下操作:

if (!string.IsNullOrEmpty(text)) 
{
    // do something
}