我如何缩短这些值检查

本文关键字:检查 何缩短 | 更新日期: 2023-09-27 18:07:19

我正在制作一个基于类型随机生成星星的系统。第一部分当然是根据稀有性告诉系统它是什么类型的恒星。我有困难缩短基于随机数生成器的实际分配部分。这是我目前的解决方案。

void StarTypeGen () {
    randomGen (x: 0, y: 229000);
    if (Rng <= 228000) {
        StarType++;
        if (Rng <= 36000) {
            StarType++;
            if (Rng <= 22500) {
                StarType++;
                if (Rng <= 9000) {
                    StarType++;
                    if (Rng <= 3750) {
                        StarType++;
                        if (Rng <= 1875) {
                            StarType++;
                            if (Rng <= 10) {
                                StarType++;
                            }
                        }
                    }
                }
            }
        }
    }
}

我如何缩短这些值检查

用值预加载数组,并在第一个条件为假时中断循环:

int[] nums = new int[] { 228000, 36000, 22500, 9000, 3750, 1875, 10 };
for (int i = 0; i < nums.Length; i++)
{
   if (Rng > nums[i]) break;
   StarType++;
}