我一直在搞乱这段代码,试图用不同的方式重新安排它。有没有更简单的方法来写它?
if x is not Number ;// if x is string
{
if y is not Number ;// x, y both strings
{
Eval(x)
Eval(y)
return
}
else ;// x is string, y is Number
{
Eval(x)
Scale(y)
return
}
}
else if y is not Number ;// x is Number, y is string
{
Scale(x)
Eval(y)
return
}
else ;// both are numbers
{
Scale(x)
Scale(y)
return
}
答案 0 :(得分:7)
看起来您想要Eval
字符串和Scale
个数字。而不是有四个显式案例(将变为八个有三个变量),独立处理x
和y
的每个案例:
if x is Number
Scale(x)
else
Eval(x)
if y is Number
Scale(y)
else
Eval(y)
或者,更好的是,您可以将Eval
/ Scale
推送到实用程序方法中:
ScaleOrEval(z):
if z is Number
Scale(z)
else
Eval(z)
...然后使用它......
ScaleOrEval(x)
ScaleOrEval(y)
如果你选择了好的方法名,那么创建一个实用工具方法可以使代码更具可读性,并帮助你避免复制和粘贴重复。
答案 1 :(得分:2)
// First handle x
if x is Number
{
Scale(x)
}
else
{
Eval(x)
}
// Then handle y
if y is Number
{
Scale(y)
}
else
{
Eval(y)
}
return