Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在循环中重置计数器_C#_Loops - Fatal编程技术网

C# 如何在循环中重置计数器

C# 如何在循环中重置计数器,c#,loops,C#,Loops,这是我的密码 int i = 0; while (i < 10) { i++; i = i % 10; } 这将给你: 10 -> 9 9 -> 8 8 -> 7 7 -> 6 6 -> 5 4 -> 3 3 -> 2 2 -> 1 1 -> 0 0 -> 10 通过使用此选项,当达到极限10时,可以将i的值重置为0

这是我的密码

        int i = 0;
        while (i < 10)
        {
            i++;
            i = i % 10;
        }
这将给你:

10 -> 9
9 -> 8
8 -> 7
7 -> 6
6 -> 5
4 -> 3
3 -> 2
2 -> 1
1 -> 0
0 -> 10

通过使用此选项,当达到极限10时,可以将i的值重置为0

int i = 0;
while (i < 10)
{
   i++;
   if(i==10)
   {
      i=0;
   }
}
inti=0;
而(i<10)
{
i++;
如果(i==10)
{
i=0;
}
}

您的第一个循环迭代数字0..9。您可以使用相同的方法使代码在9..0上迭代:

int i = 10;
while (i > -1)
{
    i--;
    i = i % 10;
}

您的两个循环都是
而(true)
,因此它们在问题中不起作用

那就是:“我能在没有if的情况下进行倒计时吗?”

答案是肯定的,如果你真的想:

 i--;
 i = (i + 10) % 10;

我不知道。这到底是为了什么?你确定第一部分重置了计数器吗?我假设这只是一个简化版本,因为如果你真的想要无限循环,你只需要无限循环。你能给我们展示一些更接近你真实情况的东西吗?这样我们就可以给你一个更好的答案,对你的真实循环有效?你的两个循环都是
,而(true)
,所以它们在问题中不起作用。
%
实际上不是模,而是余数。是的,此循环的长度似乎为11,这取决于
i
的使用方式/位置。我可能错了,但此解决方案不会重置为10,而是重置为9。假设我们在循环的入口点输出值:10987565423109而不是10。但是这是正确的,如果我们在循环结束时获取输出:)另外,为什么要执行
i--
,然后执行
i+10
?那太没效率了!为什么没有一个
i+9
?“如此低效”-您检查过C#和抖动优化了吗?在这个级别上,只有可读性才重要。
int i = 10;
while (i > -1)
{
    i--;
    i = i % 10;
}
 i--;
 i = (i + 10) % 10;