C# 通过添加I--或I+,我改变了什么+;我的while循环?
我试图弄清楚如何用循环来增加和减少数学问题,我一直在搞乘法和除法,但不能完全正确。我目前的困惑是,为什么数学计算不出我要做的事情。我认为这是因为我对循环的C#语法缺乏理解C# 通过添加I--或I+,我改变了什么+;我的while循环?,c#,loops,math,while-loop,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-- > 0)
{ Console.WriteLine(i / 2); }
我希望连续除以6,直到它变成1。
但是,输出类似于2,2,1,1,0,0。这是正确的整数数,但我真的很困惑它输出的是什么。如果我把它从这个改成这个:
int i = 6;
while(i++ > 24)
{ Console.WriteLine(i * 2); }
它在达到24之前不会乘以6乘以2,而是在达到48之前乘以14乘以2。有没有一种方法可以改变它,让它达到我所期望的效果 第一个问题是关于整数除法。整数除以整数将始终是整数,因此任何余数都将被删除。因此:
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);
}
哎呀,关于第二个问题,你说得对,>应该是一个@Patrick:在这种情况下,我希望它从14开始,因为7*2是14。谢谢你,我想我有点明白了!