c# - 创建范围表

标签 c#

首先,线程名称可能有点奇怪,但我会尽力解释我想在这里做什么,以便您可以建议我一个好的线程名称。

我想创建一个函数来通过检查他的经验返回员工级别

如果经验是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/

相关文章:

c# - 如何使用where条件

c# - SavingChanges 事件与 SaveChanges 覆盖之间的区别?

C# WinForms 搞乱了控制位置?

c# - Microsoft Visual Studio 2012 无法在 c# 文件中设置断点

c# - 如何测试我的套接字异常处理代码?

c# - += 使用字符串的相反操作是什么?

c# - 有没有办法以编程方式将文本添加到 System.Drawing.Image?

c# - 如何等待异步方法完成?

c# - Uri 为 WPF 样式 uri 抛出无效端口

c# - 如何使用Datagridview绑定(bind)源C#更新SQL Server数据库