C语言中的循环结构

C语言 专栏收录该内容
15 篇文章 0 订阅

循环结构

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。循环结构的三个要素:循环变量、循环体和循环终止条件。循环结构有三种语句,即while、do…while和for循环。

while语句

当表达式结果为真(非0)时,则一直执行循环语句,知道表达式结果为假(0)时,跳出循环。

代码结构

while(表达式)
 循环语句;

执行流程

while语句的执行流程图

语句特点

  1. break在while循环中的作用:在循环中只要遇到break,就停止后期的所有的循环,直接跳出循环。 所以,while中的break是用于永久终止循环的。
  2. continue在while循环中的作用就是:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
  3. while循环中,当条件表达式成立时,才会执行循环体中语句,每次执行期间,都会对循环因子进行修改(否则就成为死循环),修改完成后如果while条件表达式成立,继续循环,如果不成立,循环结束。因此:while循环条件将会比循环体多执行一次。

典型例题

  1. break实例
#include <stdio.h>
int main()
{
   int i = 1;
   while(i<=10)
   {
       if(i == 5)
       break;
       printf("%d ", i);
       i = i+1;
   }
return 0;
}

输出结果:1 2 3 4,break的作用是跳出循环,后面的语句都不再执行

  1. continue实例
#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
      if(i == 5)
      continue;
      printf("%d ", i);
      i = i+1;
    }
 return 0;
}

输出结果:1 2 3 4 ,continue的作用是跳过本次循环,之后一直有i = 5,程序陷入死循环。

do…while语句

先执行一次循环语句,然后再判断表达式是否满足循环条件。

代码结构

do
循环语句;
while(表达式)

执行流程

在这里插入图片描述

语句特点

  1. 循环至少执行一次,使用的场景有限,所以不是经常使用。
  2. break在do…while循环中的作用:停止break之后的所有循环,直接跳出循环。
  3. continue在do…while循环中的作用就是:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

典型例题

  1. break实例
#include <stdio.h>
int main()
{
int i = 10;
do
{
       if(5 == i)
           break;
           printf("%d\n", i);
}while(i<10);
return 0;
}

输出结果:10,do…while语句至少执行一次,不满足循环条件跳出循环体

  1. continue实例
 #include <stdio.h>
int main()
{
 int i = 10;
 do
 {
        if(5 == i)
            continue;
            printf("%d\n", i);
 }while(i<10);
 return 0;
}

输出结果:10,do…while语句至少执行一次,不满足循环条件跳出循环体

for语句

在while循环中存在循环的三个必须条件(循环变量、循环体和终止条件),由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以,for循环的风格更胜一筹,因此for循环使用的频率也最高。

代码结构

for(表达式1;表达式2;表达式3)
 循环语句;

表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。

执行流程

在这里插入图片描述

语句特点

  1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
  2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

典型例题

  1. 计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果
#include <stdio.h>

int main()
{
	int i = 0;
	int j = 0;
	double sum1 = 0;
	double sum2 = 0;
	double sum  = 0;
	for (i = 1; i <= 100; i+=2)
	{
		sum1 += 1.0 / i;
	}
	for (j = 2; j <= 100; j+=2)
	{
		sum2 += 1.0 / j;
	}
	sum = sum1 - sum2;
	printf("%f\n", sum);

	return 0;
}

输出结果:
在这里插入图片描述

  1. 在屏幕上输出9 * 9乘法口诀表
#include <stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	for (i = 1; i < 10; i++)
	{
		for (j = 1; j < 10; j++)
		{
			if (i >= j)
			printf("%d*%d=%d\t",j,i,i*j );
		}
		printf("\n");
	}
	
	return 0;
}

输出结果:
在这里插入图片描述

  1. 编写程序数一下 1到 100 的所有整数中出现多少个数字9
#include <stdio.h>

int main()
{
	int m = 0;
	int n = 0;
	int i = 0;
	int count = 0;
	for (i = 1; i <= 100; i++)
	{
		m = i / 10;
		n = i % 10;
		if (m > 8 && m < 10)
		{
			printf("%d ", i);
			count++;
		}
	    if (n > 8 && n < 10)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\ncount=%d\n", count);

	return 0;
}

输出结果:
在这里插入图片描述
4. 求10 个整数中最大值

#include <stdio.h>
int main()
{
	int i = 0;
	int max = 0;
	int a[10] = { 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 };
	for (i = 0; i < 10; i++)
	{
		if (a[i] > a[i + 1])
			max = a[i];
		else
			max = a[i + 1];
	}
	printf("%d\n", max);

	return 0;
}

输出结果:
在这里插入图片描述

  • 9
    点赞
  • 1
    评论
  • 48
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值