【C语言】循环结构程序设计 (详细讲解)

简介: 【C语言】循环结构程序设计 (详细讲解)

前言:前面介绍了程序中常常用到的顺序结构和选择结构,但是只有这两种结构是不够的,还有用到循环结构(或者称为重复结构)。因为在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题。

【卫卫卫的代码仓库】

【选择结构】

【专栏链接】


while语句实现循环

while表达式的一般形式如下:

while(表达式) 语句

其中的语句就是循环体。循环体只能是一个语句,可是一个简单的语句,还可以是复合语句(用花括号扩起来的若干语句)。执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般形式的表达式,它也称为循环条件表达式。当此表达式的值为真(以非0的值表示)时,就执行循环体语句;为假时(以0表示)时,就不执行循环体语句。

我们可以简单的记为:只要当循环条件表达式为真(即条件成立),就执行循环体语句。

看例题:求 1 + 2 + 3 + … + 99 + 100的和

int main()
{
  int i = 1;
  int sum = 0;
  while (i <= 100)
  {
    sum += i;
    i++;
  }
  printf("%d\n", sum);
  return 0;
}

代码流程图分析:

运行结果:

do…while语句实现循环

除了while语句以外,C语言还提供了do…while语句来实现循环结构体。如:

int i = 1; //设变量i的初始值为1
do   //循环结构开始
{
  printf("%d",i++);//循环体
}while(i <= 100); //当i小于等于100时,继续执行循环体

do … while的一般形式为:

其中的“语句”就是循环体。它的执行过程可以用图5.4表示。它的执行逻辑如下图所示:

例题:用do…while语句求 1+ 2 + 3 + … + 99 + 100的和

int main()
{
  int i = 1;
  int sum = 0;
  do
  {
    sum += i;
    i++;
  } while (i <= 100);
  printf("sum = %d\n", sum);
  return 0;
}

运行结果:


用for语句实现循环

除了while语句和do…while语句实现循环外,C语言还提供了for语句实现循环,而且for语句更加灵活,不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环条件的情况,它可以完全代替while语句。

例如:

for (i = 1; i <= 100; i++) //控制循环次数,由1变到100,共循环100次
  printf("%d",i);        //执行循环体,输出i当前值

它的执行过程如下图:


for语句的一般形式为:

用break提前中止循环

break语句可以用来从循环体内部跳出循环体,即提前结束循环,接着执行循环下面的语句。

例题:在全系1000名学生中举行慈善捐款,当总数达到10万元时就结束,统计此时捐款的人数以及平均每人捐款的数目。

int main()
{
  float amount = 0.0;
  float ave = 0.0;
  float total = 0.0;
  int i = 0;
  for (i = 1; i <= 1000; i++)
  {
    printf("请输入你的捐款数额\n");
    scanf("%f", &amount);
    total += amount;
    if (total >= 100000)
    {
      break;
    }
  }
  ave = total / i;
  printf("捐款的人数是%d:\n", i);
  printf("每人捐款的平均值%f\n", ave);
  return 0;
}

运行结果:


用continue语句提前结束本次循环

有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环。这时可以用continue语句。

例题:要求输出100 ~ 200的不能被3整除的数

int main()
{
  int i = 0;
  for (i = 100; i <= 200; i++)
  {
    if (i % 3 == 0)
    {
      continue;
    }
    printf("%d ", i);
  }
  printf("\n");
  return 0;
}

运行结果:


今天的内容就讲到这里了,如果各位觉得讲的好的话麻烦给作者一个三连吧!讲的不好的话也麻烦各位多多指出了,谢谢各位的观看。


相关文章
|
2天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
2天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
2天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
2天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
2天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
2天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
2天前
|
C语言
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
|
2月前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
24 1
|
2月前
|
C语言
在C语言中,for语句是一种常用的循环结构控制语句
在C语言中,for语句是一种常用的循环结构控制语句
8 0
|
2月前
|
C语言
c语言循环结构
c语言循环结构
11 0