如何使值的增加不大于进度条中的最大值

本文关键字:最大值 不大于 何使值 增加 | 更新日期: 2023-09-27 18:20:07

我正在尝试制作一个程序,其中的值随着按钮的按下而增加,进度显示在进度条中。最小值为0,最大值为100,我对其进行了编码,以便如果值达到100以上,则使值等于100。然而,它一直超过100,给了我一个错误。我是编程新手,我不确定我的错误在哪里。

        if (happyLevel < 100)
        {
            happyLevel = happyLevel + 4;
        }
        else if (happyLevel > 100)
        {
            happyLevel = 100;
        }
        if (hungryLevel < 100)
        {
            hungryLevel = hungryLevel + 4;
        }
        else if (hungryLevel > 100)
        {
            hungryLevel = 100;
        }
        if (healthLevel < 100)
        {
            healthLevel = healthLevel + 4;
        }
        else if (healthLevel > 100)
        {
            healthLevel = 100;
        }

如何使值的增加不大于进度条中的最大值

您正在使用else if进行检查,这意味着如果+ 4中的数字大于96,则它可以将任何变量递增到100以上。解决此问题的一个快速方法是删除ifs之前的所有elses,这样无论怎样都可以进行检查。

你不希望其他人在里面。你必须考虑如果添加4将级别设置为100以上会发生什么:

if(happyLevel < 100)
  happyLevel += 4;
if(happyLevel > 100)
  happyLevel = 100;

附带说明一下,该代码也可以替换为:

happyLevel = Math.Min(100, happyLevel + 4);

如果其中一个级别是98,它将输入与它相关的第一个If语句,更新到102,而不输入else-If。一个快速而简单的解决方案是将else-If更改为just-If。