首先,线程名称可能有点奇怪,但我会尽力解释我想在这里做什么,以便您可以建议我一个好的线程名称。
我想创建一个函数来通过检查他的经验返回员工级别
如果经验是0~50他就是1级 如果经验是50~150他就是2级 ... 以此类推直到 100 级
我在想的是创建一个 const int 来保存每个级别所需的所有 exp
public const int Level1 = 50,
Level2 = 150...;
那么有没有办法让一个函数返回我想要的?不使用 1000++ 行?!。
请不要将我的问题视为垃圾邮件,我只是很困惑,如果需要,我会尽力澄清我的想法。
最佳答案
int level = Math.Min(10, experience / 10);
这样行吗?
如果你想要 0-10 -> 1 和 11-20 -> 2 等,像这样改变它:
int level = Math.Min(10, (experience + 9) / 10);
如果在经验获取方面根本没有模式,或者一些非常模糊的模式,你可以使用这个:
var level = 1;
var levelRequirements = new int[] {10, 20, 50, 150, 300};
for (int i = 0; i < levelRequirements.Length; i++)
{
if (levelRequirements[i] > currentExperience)
break;
level++;
}
现在是我的最后更新:
var level = 0;
var levelRequirement = 0;
var levelRequirementAddition = 50;
while (currentExperience >= levelRequirement)
{
levelRequirement += levelRequirementAddition;
levelRequirementAddition += 50;
level++;
}
关于c# - 创建范围表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13478581/