我不明白这个for循环是如何工作的c++

I am not understanding how this for loop is working c++

本文关键字:何工作 工作 c++ 明白 循环 for      更新时间:2023-10-16
#include <iostream>
using namespace std;
int main()
{
   int x = 0;
   for int (i=0; i<100; i++)
   if (i%9 == 0) x = i;
   else x = -1;
   cout << x;
   return 0;
}

这段代码返回值99。

当我一行一行地读它时,我是这样理解的。
    声明一个变量x,赋值为0。
  1. 当i = 0, i小于100时,将i增加1。
  2. 如果i/9的余数等于0,将i的值赋给x。
  3. 如果没有设置x等于-1
  4. 打印x

在for循环的第一步,i被赋值为0。0除以9等于0这满足了if语句的条件那么为什么它不输出x等于0而不是99呢?

逐行

1)声明变量x;赋值0

#include <iostream>
int main()
{
    int x=0;
}

2)对于i = 0, i小于100,i增加1。

#include <iostream>
int main()
{
    int x=0;
    for(int i=0; i<100; i++) {};
}

3)如果i/9的余数等于0,则将i的值赋给x

#include <iostream>
int main()
{
    int x=0;
    for(int i=0; i<100; i++)
    {
        if(i%9==0)
        {
            x = i;
        }
    };
}
4)如果没有设置,x应该等于-1:
#include <iostream>
int main()
{
    int x=0;
    for(int i=0; i<100; i++)
    {
        if(i%9==0)
        {
            x = i;
        }
        else
        {
            x = -1;
        }
    };
}
5)打印出x
 #include <iostream>
int main()
{
    int x=0;
    for(int i=0; i<100; i++)
    {
        if(i%9==0)
        {
            x = i;
        }
        else
        {
            x = -1;
        }
    };
    std::cout << x << std::endl;
}

DEMO of last one.

更多c++有趣活动的参考

worldbestlearn

维基教科书

课程

输出正确。每次通过循环,x要么获得i的值,要么获得-1的值。最后一次通过循环时,i == 99i % 9确实是0,因此x被赋值为99。然后i获取值100,循环退出,程序的其余部分打印x的当前值,即99

注意if/elsefor循环的主体。循环不会因为i%9if中为0而退出。

只有for循环之后的单个语句在for循环中。注意,if ... else ...是一个语句(包含其他语句)。

完全相同的代码最好写成:

int main()
{
   int x = 0;
   for (int i=0; i<100; i++)
   {
      if (i%9 == 0)
         x = i;
      else
         x = -1;
   }
   cout << x;
   return 0;
}

,现在应该很容易看出为什么在循环结束之前什么都不打印