C语言——for循环

for循环

允许编写一个执行指定次数的循环控制结构。


一、格式

for ( init; condition; increment )
{
   statement(s);
}

二、流程图

请添加图片描述

三、分析

  1. init
    首先被执行,只会执行一次。该步允许声明并初始化任何循环控制变量

  2. condition
    如果为真,则执行循环主体。
    如果为假,则不执行循环主体,控制流会出for循环。

  3. increment
    在执行完 for 循环主体后,控制流会跳回increment语句,该步要求更新循环控制变量。

  4. 条件再次被判断。如果为真,则执行循环,过程不断重复;如果为假,for 循环终止。

for循环像一个计数循环:设定一个计数器,初始化变量;在计数器达到某值之前,重复执行循环体
;每执行一轮循环,计数器值以一定方式进行调整(+1或-1)

注意
灵活的for循环

  • init,condition,increment可以按照需要进行省略(分号不能省略)

    for ( ; condition; increment ) 或 for ( init; ; increment ) 或 for ( init; condition; ) 或 for ( ; ; increment )…

  • for( ; ; ) ——> while(1){…}

    该循环代表死循环,通过break退出,还可以通过ctrl+c终止

四、经典例题

1. 50个素数

#include <stdio.h>

int main()
{
int i = 2;

//scanf("%d",a);
//for(i=2;i<100;i++)
int cnt = 0;
while(cnt<50)
{
	int x=0;
	int isprime=1;  //a是素数
	for(x=2;x<i;x++)
	{
		if(i%x==0)
		{
			isprime = 0;
			break;
		}
	}
	if(isprime==1)
	{
		printf("%d ",i);
		cnt++;
	}
	i++;
}
printf("\\n");
return 0;
}

嵌套的for循环

一、格式:

for (initialization; condition; increment/decrement)
{
    statement(s);
    for (initialization; condition; increment/decrement)
    {
        statement(s);
        ... ... ...
    }
    ... ... ...
}

请添加图片描述

二、案例

判断上三角矩阵
在这里插入图片描述

#include <stdio.h>

int main( void )
{
     int t, n, i, j, k;
     int a, b, c=0;
     int str[10][10] = {0};
     int judge[10] = {0};
     scanf("%d",&t);
     for(i=0; i<t; i++)
     {
        scanf("%d",&n);
        for(j=0; j<n; j++)
        {
              for(k=0; k<n; k++)
              {
                      scanf("%d",&str[j][k]);
              }
        }

		for(a=0;a<n;a++)
		{
			for(b=0; b<n; b++)
			if(a>b && str[a][b]!=0)
			{
				judge[c] = 1;
			}
		}
		c++;
	}
	
	for(i=0; i<t; i++)
	{
		if(judge[i]==1)
		printf("NO\\n");
		else
		printf("Yes\\n");
	}
}

打印九九乘法表

#include <stdio.h>

int main()
{
	int i, j;
	int n;
	scanf("%d",&n);
	
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
		{
			printf("%d*%d=%-4d",j, i, i*j);
		}
			if(i!=n)
			{
				printf("\n");
			}
	}
	
	return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值