繁体   English   中英

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

[英]How to make a value not increase greater than a maximum value in a progress bar

我正在尝试制作一个程序,其中的值随着按钮的按下而增加,并且进度显示在进度栏中。 最小值为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检查else if ,这意味着else if变量中的数字大于96,则+ 4可能会将任何变量增加到100以上。 一个快速的方法来解决它是去除所有else之前的S if这样你做检查不管秒。

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

您不希望其他对象在那里。 您必须考虑如果将4设置为100以上,会发生什么情况:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM