用于C++中的循环

for loop in C++

本文关键字:循环 C++ 用于      更新时间:2023-10-16

我只是有点好奇额外的部分去了哪里,以及是否有更好的方法来避免使用for()的准确性损失

for(int a = 10; a >= 0; a -= 3)
cout << a << endl;

输出10 7 4 1

所以我想知道它为什么不继续下去,因为1仍然大于0。我理解不存在的签名方面,它是一个int,但最后一个1会发生什么?我想它只是凭空消失了。所以我想知道是否有人能解释为什么它不继续,或者至少为什么它输出10, 7, 4, 1而不是10, 7, 4, 1, 1,以及如何使其成为可能输出10, 7, 4, 1, -2

用于cppreference.com 上的循环

这是for循环的定义:

for ( init_statement ; condition ; iteration_expression )
statement;

执行init_statement一次,然后重复执行语句迭代表达式,直到条件的值变为false。测试在每次迭代之前进行。

这被转换为以下步骤:

  1. init_statement被执行
  2. 检查CCD_ 7;如果为true,转到步骤3,如果为false,转到步骤6
  3. 执行statement
  4. 执行iteration_expression
  5. 转到步骤2
  6. CCD_ 10循环完成。(跳过statement并执行下一条语句)

在这种情况下,将采取以下步骤:

  1. a被指定为10(a==10)
  2. 检查a >= 0,为真
  3. 10输出到cout
  4. 执行a -= 3(a==7)
  5. 检查a >= 0,为真
  6. 7输出到cout
  7. 执行a -= 3(a==4)
  8. 检查a >= 0,为真
  9. 4输出到cout
  10. 执行a -= 3(a==1)
  11. 检查a >= 0,为真
  12. 1输出到cout
  13. 执行a -= 3(a==-2)
  14. 检查a >= 0,为false
  15. for循环完成。(跳过statement并执行下一个语句。)