我的第一次尝试反向for循环做某事 n 次是这样的:
for ( unsigned int i = n-1; i >= 0; i-- ) {
...
}
This fails因为在无符号算术 i
保证始终大于或等于零,因此循环条件始终为真。幸运的是,在我不得不想知道为什么循环无限执行之前,gcc 编译器警告我“无意义的比较”。
我正在寻找一种解决此问题的优雅方法,请记住:
- 它应该是一个向后的 for 循环。
- 循环索引应该是无符号的。
- n 是无符号常数。
- 它不应该基于无符号整数的“晦涩”环算术。
有任何想法吗?谢谢 :)
怎么样:
for (unsigned i = n ; i-- > 0 ; )
{
// do stuff with i
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)