如何消除多个返回语句到一个语句.例如:我有一个if子句,if子句的结果为true,它将返回0.或返回1,如果包含另一个if子句则相同的else.它还有返回值.我怎样才能将这四个回报陈述归为一个?
这是该计划
if (IgC == true)
{
if (val1.ToUpper() == val2.ToUpper())
{
return 0;
}
else
{
return 1;
}
}
else
{
if (val1 == val2)
{
return 0;
}
else
{
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我对逻辑的猜测......
int retVal;
if (condition)
{
// statements
retVal = 0;
}
else
{
// statements
if (otherCondition)
{
retVal = 1;
}
else
{
retVal = 2;
}
}
return retVal;
Run Code Online (Sandbox Code Playgroud)
以及您现在发布的更新:
int retVal;
if (IgC)
retVal = (val1.ToUpper() == val2.ToUpper()) ? 0 : 1;
else
retVal = (val1 == val2) ? 0 : 1;
return retVal;
Run Code Online (Sandbox Code Playgroud)
我避免嵌套三元运算符或用它们检查多个条件,因为这会使代码模糊不清.如果你更明确的话,那并不是代码的效率会降低,所以整个事情只是关于可读性.
我尝试权衡代码长度和视觉复杂性与表现力,而if/ternary组合对我来说似乎是一个很好的中间立场.