如何在执行C#中的代码之前获得最大值

本文关键字:最大值 代码 执行 | 更新日期: 2023-09-27 18:28:51

我有这个编程问题,我使用的是C#。我想检查varA是否小于8,然后执行降低值的代码,比如这个

//intial
float varA = 0.0f;
if(varA <= 8.0f){
varA -= 2.0f;
}

这段代码运行良好,但问题是,如果varA小于8,那么我希望它先增加到8,然后开始减少。

例如,如果varA等于6,那么它应该增加到8,然后开始减少。希望你明白我的意思。谢谢

如何在执行C#中的代码之前获得最大值

您需要一个标志来告诉您何时开始运行减法代码。

Boolean doIt = false;
// your outer loop
{
  if (varA ==8.0f) {
    doIt = true;
  }
  if ((doIt) && (varA <= 8.0f)) {
    varA -= 2.0f;
  }
}

当然,上面的主要问题是如果varA为9.0会发生什么。在这种情况下,它不会减少,但这对你来说可能重要,也可能无关紧要。

你是对的-你的问题有点令人困惑。看起来你需要一个简单的if/else:

if(varA <= 8.0f) {
    varA -= 2.0f;
}
else {
    varA += 2.0f;
}

你的意思是。。。

if(varA <= 8.0f){
    // do stuff with varA being 8.0 eg
    myFunc(varA);
    varA -= 2.0f;
}

不确定我是否答对了问题,

varA = varA >= 8.0 ? varA -= 2.0f : varA += 2.0f;

我假设,您正在尝试在一个无限循环中执行此操作。

bool localMaximumReached = false;    
        while (true)
        {
            if (varA < 8.0f)
            {
                if (!localMaximumReached)
                {
                    varA += 1.0f;
                    if (varA >= 8.0f)
                        localMaximumReached = true;
                }
                else
                    varA -= 2.0f;
            }
            else
                break;
         }