我正在尝试一轮一轮地打印对象的高度。它从100英尺的高度开始。问题是,它可以上升或下降,具体取决于每回合花费多少能量。我很难解释我会超过 100---初始起始高度的情况。目标是在游戏对象高度旁边出现一个星号,向下舍入最接近的 10 值;
我尝试在满足相反条件时递增 I,但它只会淹没控制台。也许我的逻辑感在这里完全不对劲。
public void printlocation(Object gameObject)
{
int heightToPrint = (gameObject.GetHeight() - (gameObject.GetHeight() % 10));
for (int i = heightToPrint; i >= 0; i -= 10)
{
if (i == heightToPrint)
{
Console.WriteLine($"{i}m:*");
}
else
{
Console.WriteLine($"{i}m:");
}
}
}
就目前而言,它为 for 循环的每次迭代打印星号。
你写的是else if (i >= heightToPrint)
而不是else if (i == heightToPrint)
.也不要在循环的主体中做i += 10;
。您已经在循环访问从 100 到 0 的所有值。物体是向上移动还是向下移动都没有区别。只需在高度打印一个"*"。
但是你可以更容易地做到这一点
public void printlocation(Object gameObject)
{
int heightToPrint = gameObject.GetHeight() % 10;
for (int i = 100; i >= 0; i -= 10)
{
Console.WriteLine($"{i}m:{(i == heightToPrint ? "*" : "")}");
}
}