if语句使用&&两个浮点数?

Mar*_*k.S 0 c# unity-game-engine

我在Unity中有ac#script并且有问题.我正在尝试检查倒数计时器的两个浮点数是否等于零.一旦达到零,做一些事情.

当我做

if (minutes && seconds <= 0){
        Debug.Log("countdown timer has finished");
    }
Run Code Online (Sandbox Code Playgroud)

我得到了错误;

错误CS0019:运算符&&' cannot be applied to operands of type浮动'和'布尔'

我理解这里发生了什么,我的问题是如何检查两个浮点数是否达到零,debug.Log.

Far*_*yev 8

你不能检查多个这样的变量.你必须改变你的代码:

if (minutes <= 0 && seconds <= 0){
        Debug.Log("countdown timer has finished");
    }
Run Code Online (Sandbox Code Playgroud)

或者,如果您要检查许多变量,那么您可以Any()System.Linq命名空间创建新的List和use 方法.(但是, 正如@Marc评论的那样,如果你还没有列表,那么不推荐):

if (!(new[] { firstFloat, secondFloat, thirdFloat }).Any(x => x > 0));
Run Code Online (Sandbox Code Playgroud)

但是,如果你有一个列表或一个数组,它会更好更简单:

if (!myList.Any(x => x > 0));
Run Code Online (Sandbox Code Playgroud)

  • 对于单谓词测试IMO来说,新建一个列表(或数组)是*大量*过度杀伤; 如果你已经有了清单和内容:很好 (6认同)