【发布时间】:2017-03-09 02:20:24
【问题描述】:
我正在创建一个程序来评估输入的数字,例如我输入 5 函数应该能够返回数字,这意味着:
5 => 500
4 => 400
6 => 600
10 => 1000 and so on.
这是我到目前为止所做的。
public int NumberEval(int theNumber)
{
int theResult = 0;
switch (theNumber)
{
case 0:
theResult = 1;
break;
case 1:
theResult = 1;
break;
case 2:
theResult = 200;
break;
case 3:
theResult = 300;
break;
case 4:
theResult = 400;
break;
case 5:
theResult = 500;
break;
case 6:
theResult = 600;
break;
case 7:
theResult = 700;
break;
case 8:
theResult = 800;
break;
case 9:
theResult = 900;
break;
case 10:
theResult = 1000;
break;
case 11:
theResult = 1100;
break;
case 12:
theResult = 1200;
break;
case 13:
theResult = 1300;
break;
case 14:
theResult = 1400;
break;
case 15:
theResult = 1500;
break;
case 16:
theResult = 1600;
break;
case 17:
theResult = 1700;
break;
case 18:
theResult = 1800;
break;
case 19:
theResult = 1900;
break;
case 20:
theResult = 2000;
break;
default:
break;
}
return theResult;
}
我的问题是如果我输入 50 那么它应该是 5000 怎么办。有没有办法简化这个方法,因为我不想手动编码 switch 语句中的每个项目?或者甚至是一个数学方程?
【问题讨论】:
-
乘以 100?
-
... 除非
theNumber == 1或== 0,在这种情况下只返回 1(除非这是您的问题中的拼写错误?)。为了将来参考,您应该问自己的第一个问题是“我怎么知道我想要返回什么?”也就是说,是什么让你认为如果theNumber == 9你应该返回 900?如果你这样做了并且想出了“因为 9 * 100 = 900”,那会给你一个提示,告诉你如何在不硬编码每个答案的情况下解决这个问题。 -
一定要用开关吗?
-
和一些溢出的值需要进位 int