C语言初阶——循环语句(while,for,do while)

简介: C语言初阶——循环语句(while,for,do while)

生活中有些事情需要我们重复、反复的去做,这时我们就可以说我们循环的去做这件事。

7750e60be88f4596a49f829c8924ed56.png

要学习循环语句,首先我们介绍一下程序设计语言中的循环是什么意思:

循环是程序设计语言中反复执行某些代码的一种计算机处理过程,常见的有按照次数循环和按照条件循环。


在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,取决于循环的终止条件。循环语句是由循环体及循环的终止条件两部分组成的。

那么接下来我们就来介绍一下C语言中的3中循环:


一.while循环

我们已经掌握了,if语句:

if(条件)
语句;

当条件满足的情况下,if语句后的语句执行,否则不执行。

但是这个语句只会执行一次。

由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。

那我们怎么做呢?

C语言中给我们引入了: while 语句,可以实现循环。

1.语法介绍和基本使用

首先我们来学习while循环,那什么是while循环呢?

我们知道,while有当…的时候的意思,所以while循环就是当满足一个特定条件是执行循环体,一旦不满足,就结束循环。

while的语法结构:

//while 语法结构
while (表达式)
  循环语句;

4f8f137a0d4c4889b8b93f9591f9048f.png

举个例子,我们想要在屏幕上打印数字1——10,就可以使用while循环:

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

aad7bfb0cef34254aa39d08615c59ae2.png

当i的值加到10 的时候,满足i<=10,再执行一次循环,i再加1,变为11,再进行判断,不满足i<=10,循环结束

上面的代码已经帮我了解了 while 语句的基本语法,那我们再继续向下学习:

2. while循环中的break的作用

break有终止,中断,逃脱的意思,那么在循环中break的作用是啥呢?

我们通过一段代码来学习break的作用:

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

大家思考一下,输出的结果是啥:

28dba048ee1d4299919d894a8edbb671.png

答案是是的!!!,循环中遇到break循环就直接结束了。

break在while循环中的作用:

其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。

a46a81ee1ee642069755ae6e192a9ecf.png

所以:while中的break是用于永久终止循环的。

3.while循环中continue的作用

介绍了break在在while中的作用,那我们再来介绍一下continue再while循环中的作用:

还是通过几个实例来解释,上代码:

先看第一个:

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

思考一下,结果是什么?d70e567ddf4a478babd62ec360eb424d.png

为什么出现这样的情况呢?别急,我们再来看一个代码:

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

大家先看一下这个代码与上一个有啥区别,再思考结果是啥:

我们发现,这段代码与上一个相比,只是把i=i+1这句代码放在了if语句前面,那结果会有什么不同呢?

57b6e0824b0b4bf5b7ecb053b9052981.png

是这样吗?确实是的

现在我们就可以很好的解释上一个代码的结果了:

831cdd4bfc294b9985e9fb4b5597bf18.png

总结:

continue在while循环中的作用就是:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断

a09180e4841e440796b40b202e52c790.png

二.for循环

1.语法介绍和基本使用

我们已经知道了while循环,但是我们为什么还要一个for循环呢?

首先来看看for循环的语法:

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

769f281ba1cc419391803a816dfd2f3d.png看一个实际的问题:

使用for循环 在屏幕上打印1-10的数字

#include <stdio.h>
int main()
{
 int i = 0;
 //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
 for(i=1; i<=10; i++)
 {
 printf("%d ", i);
 }
 return 0; }

来看看结果是啥:

de3feb7edd3f4c90aa71d9e9cdd29238.png

相信现在大家对于for循环的基本使用已经了解了。

2.for循环和while循环的对比

我们使用for循环和while循环实现一个相同的功能,进行一下对比:

实现相同的功能,使用while

int i = 0;
i=1;//初始化部分
while(i<=10)//判断部分
{
 printf("hehe\n");
 i = i+1;//调整部分
}

实现相同的功能,使用for

for(i=1; i<=10; i++) {
 printf("hehe\n");
}

可以发现在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。

所以,for循环的风格更胜一筹;for循环使用的频率也最高

3. break和continue在for循环中的作用

在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。

代码1:

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

dda223ccf1be4beda6245e8a9883a397.png

代码2:

//代码2
#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;
 printf("%d ",i);
 }
 return 0; }

c0b339b5b9af471697eb6b0cc11af443.png

好的一点时我们在for循环中这样写不会像while那样出现死循环。因为continue不能跳过调整部分

所以在for循环中,break和Continue的作用也是如此:

1.遇到break,就停止后期的所有的循环,直接终止循环,执行循环后面的部分。

2.遇到continue,直接跳到调整部分,然后进行条件判断。

4.for语句的循环控制变量

这里给大家提一些建议:

1.不可在for 循环体内修改循环变量,防止 for 循环失去控制。

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

366b36754773406480bf3e1f9beb1cfe.png

2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。(只是建议,这样写不合适的话也不必强求)

f1d6fd4c7493431589ec451eec17320d.png

5. 一些for循环的变种

for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题

1.

举个例子:

#include <stdio.h>
int main()
{
  //代码1
  for (;;)
  {
    printf("hehe\n");
  }
}

死循环了,为啥呢?

91ee9c59cd5d47879d0c34e8dd805efc.png

2.在看一个例子:

#include <stdio.h>
int main()
{
  //代码2
  int i = 0;
  int j = 0;
  int count = 0;
  //这里打印多少个hehe?
  for (i = 0; i < 10; i++)
  {
    for (j = 0; j < 10; j++)
    {
      count++;
      printf("hehe\n");
    }
  }
  printf("count=%d\n", count);
}

打印多少次hehe呢?

这个比较容易,打印100次。

2a7b1683e2b84e95b7235898822ae4a7.png

那还是这段代码,如果省略掉初始化部分,这里打印多少个hehe?

 //代码3
    int i = 0;
    int j = 0;
    //如果省略掉初始化部分,这里打印多少个hehe?
    for(; i<10; i++)
   {
        for(; j<10; j++)
       {
 printf("hehe\n");
       }
   }

b8217d9437f64ad49c940ba4a5b73bb6.png

去掉初始化部分后,值打印10次:

0566ddbfdddc44c5bbe18cdbbbedbe18.png

3.for循环中的循环控制变量可以有多个

举个例子:

#include <stdio.h>
int main()
{
  //代码4-使用多个变量控制循环
  int x, y;
  for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
  {
    printf("hehe\n");
  }
  return 0; 
}

795f746b7d4e4672897c356cf68f93fb.png

好了,for循环就介绍完了。

三.do while循环

接下来介绍do while循环

1.语法介绍和基本使用

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

16aef1f1f46147d3a27b6a703c0bb3a0.png

特点:

循环至少执行一次,使用的场景有限,所以不是经常使用。

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

ad9a2cb7b72d4f4e8c6c74f79a818fbc.png

2. break和continue在do while循环中的作用

break和continue在do while循环中的作用也和在while循环中一样。

演示一下:

代码1:

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

fe85f91f90a14770811f135e3b935e9a.png

代码2:

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

438c1f4a7833406880267dacffbb4d17.png

以上就是对C语言中循环语句的介绍了。
欢迎大家指正!!!

目录
相关文章
|
4月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
94 5
|
1月前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
51 19
|
1月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
77 18
|
1月前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
57 18
|
1月前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
52 13
|
1月前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
43 6
|
1月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
56 5
|
4月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
69 6
|
4月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
27 0
|
4月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环