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

时间:2012-01-12 00:39:40

标签: c# progress-bar

我正在尝试制作一个程序,当按下按钮时值会增加,并且进度会显示在进度条中。 min为0,max为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;
        }

3 个答案:

答案 0 :(得分:2)

您正在使用else if进行检查,这意味着如果您的数字高于96,+ 4可能会将任何变量递增到100。解决问题的一种快速方法是删除else之前的所有if,以便您无论如何都要进行检查。

答案 1 :(得分:1)

如果其中一个级别为98,它将输入与之相关的第一个if语句,更新为102,而不输入else if。一个快速简便的解决方法是将else改为if。

答案 2 :(得分:1)

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

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

作为旁注,该代码也可以替换为:

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