for的内嵌for之初体验

时间:2021-11-28 23:38:23

#include<stdio.h>

int main()

{

    int m,n;

    for(m=2;m<=100;m++)

    {

        for(j=2;j<=i;j++)

        if(m%n==0)

            break;

        if(m==n)

            printf("%d%t",m);

    }

    printf("\n");

return 0;

}

      以前根据程序来读总以为for()(暂且称为for1)内嵌的for()(称为for2)和for1是一一对应,同步进行的。拿上面的程序为例,错误的认为当for1的m=2时 for2的n也等于2,以此类推,当for1的m等于50时,for2的m也等于50。但是按照此看法来读这个程序会发现根本读不下去。因为在此种情况下m的值永远等于n,当然也无法打印出所有的质数。

       仔细的想了想,觉得这个for和内嵌for之间的关系可以这样理解:for1代表一个集合,for2代表一个集合,就像中学学的映射一样。for1的每个元素都能在for2中找到与之相对应的关系。即for1的每种情况,for2的每种处理方式都会处理一遍。