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;