gpt4 book ai didi

c# - 如果语句为真,为什么代码转到 else?

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:56 25 4
gpt4 key购买 nike

我正尝试通过提高等级来产生障碍,但出于某种原因,当我在游戏中对其进行测试时,它无法按我想要的方式工作。

假设我从 26 级开始游戏。

我一直玩到 36 级,即使是 35 级也正确生成,但是当玩家正好达到 36 级时,代码进入 else 语句而不是 else if..

这是我按级别生成障碍物的代码..

if (curentLevel > 0  && curentLevel < 10)
{
SpawnSpawner(0);
}
else if (curentLevel > 10 && curentLevel < 35)
{
SpawnSpawner(1);
}
else if (curentLevel > 35 && curentLevel < 50)
{
SpawnSpawner(2);
}
else if (curentLevel > 50 && curentLevel < 60)
{
SpawnSpawner(5);
}
else
{

}

else 语句中的代码被执行,在我的例子中它是空的,恰好在第 36 层。

我希望有解决方案,因为我告诉程序检查 curentlevel 是否高于 35,即 36 级别,如果级别小于 50,即 36,所以我不知道为什么那么它不是执行这段代码:

 else if (curentLevel > 35 && curentLevel < 50)

我敢打赌我做错了什么,但我希望有人能指出解决方案并解释为什么程序不符合我的思维方式,非常感谢...

最佳答案

根据@Ruzihm 在评论中的解释,您正在检查是否小于 35 和大于 35,因此当 currentLevel 恰好等于 35 时,它在任何情况下都不会计算为真。

解决方案,根据@DavidFreeman 在评论中的回答 - 解决您的问题的方法是使代码不那么复杂:

if (curentLevel < 10)
{
SpawnSpawner(0);
}
else if (curentLevel < 35)
{
SpawnSpawner(1);
}
else if (curentLevel < 50)
{
SpawnSpawner(2);
}
else if (curentLevel < 60)
{
SpawnSpawner(5);
}
else
{

}

if (currentLevel > 10)是多余的,如果它不评估 truecurrentLevel < 10下一个else if肯定是10个或更多.

如果您必须使用特定范围,则必须注意在条件句中包含所有级别,如@BACON 写道,您当前的条件涵盖了当前级别 1-9、11-34、36-49 和51-59,自10 < 10 == false & 10 > 10 == false .您需要在条件之一中包含第 10 级,例如 10 <= 10 == true

关于c# - 如果语句为真,为什么代码转到 else?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57120341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com