通过在我的while循环中添加i--或i ++来改变我的想法?

时间:2017-01-13 00:16:07

标签: c# loops math while-loop

我试图弄清楚如何增加和减少循环的数学问题,我一直在搞乱乘法和除法但是不能完全正确。我目前的困惑是为什么数学不能解决我试图做的事情。我假设我对C#语法缺乏了解循环。

        int i = 6;

        while(i-- > 0)
        { Console.WriteLine(i / 2); }

我希望连续分为6,直到达到1。 但是输出类似于2,2,1,1,0,0。这是正确的整数数,但我真的很困惑它输出的是什么。如果我将其改为:

        int i = 6;

        while(i++ > 24)
        { Console.WriteLine(i * 2); }

它不会乘以2乘以2直到它达到24,而是将14乘以2直到它达到48.有没有办法我可以改变这个以便它能达到我的预期呢?

1 个答案:

答案 0 :(得分:1)

第一个问题是关于整数除法。除以整数的整数将始终为整数,因此将删除任何余数。因此:

5 / 2 = 2
4 / 2 = 2
3 / 2 = 1
2 / 2 = 1
1 / 2 = 0
0 / 2 = 0

第二个问题对我来说并不合理,因为我根本不会期望输入循环。您刚刚声明i = 6,并且由于i++ > 24为false,因此根本不应输入循环。我怀疑你在某个地方误调了一些东西。

作为旁注,我不建议像这样构建代码。像while (i-- > 0)这样的东西在阅读代码时可能会产生误导或混淆,要求阅读代码的人必须停下来思考一下或者调试代码。

将您的比较和您的操作分开。可以像这样完成相同的循环:

while (i > 0)
{
    i--;
    Console.WriteLine(i / 2);
}