使用for循环索引问题

Fit*_*rcy 4 c++ loops for-loop do-while

我有一个for循环,我正在使用幻灯片操作符,因为我正在使用无符号类型.从本质上讲,归结为

for (std::size_t i = 6; i --> 0;){
    cout << i;
}
Run Code Online (Sandbox Code Playgroud)

但是它输出从5到0的数字,并且省略6.为什么?

非常感谢你看这个.我很困惑.

Bat*_*eba 7

这是一个试金石

  1. 事实上,这个所谓的"操作员"应该谨慎使用,如果有的话.

  2. for循环的条件检查中改变变量的状态应该非常谨慎,如果有的话.

最大输出是5,因为i条件测试也会减少,因此会减少i.在程序控制进入for循环体之前运行条件检查.

你真的应该重写循环.不要将初始值设置i为7,因为这是一个肮脏的黑客.虽然-->经常使用while(并强调,它不太可能在你的编程评论中赢得很多朋友),但我以前从未见过它与for循环一起使用过.