通过改变对象值来打印高度

时间:2019-04-16 19:49:30

标签: c# for-loop return

我正在尝试逐个打印对象的高度。它从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循环的每次迭代打印星号。

1 个答案:

答案 0 :(得分:0)

您写的是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 ? "*" : "")}");
    }
}