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

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

文章目录

一.while循环

1.语法介绍和基本使用

2. while循环中的break的作用

3.while循环中continue的作用

二.for循环

1.语法介绍和基本使用

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

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

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

5. 一些for循环的变种

三.do while循环

1.语法介绍和基本使用

2. break和continue在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循环中的作用:

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语言中循环语句的介绍了。
欢迎大家指正!!!

目录
相关文章
|
2天前
|
C语言
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
9 0
|
2天前
|
存储 编译器 C语言
C语言初阶⑦(指针初阶)知识点+笔试题(上)
C语言初阶⑦(指针初阶)知识点+笔试题
10 0
|
2天前
|
程序员 C语言
C语言程序设计——循环语句
C语言程序设计——循环语句
|
2天前
|
算法 编译器 C语言
从C语言到C++⑩(第四章_模板初阶+STL简介)如何学习STL(下)
从C语言到C++⑩(第四章_模板初阶+STL简介)如何学习STL
7 0
|
2天前
|
编译器 C语言 C++
从C语言到C++⑩(第四章_模板初阶+STL简介)如何学习STL(上)
从C语言到C++⑩(第四章_模板初阶+STL简介)如何学习STL
6 0
|
2天前
|
C语言
C语言——分支,循环语句
C语言——分支,循环语句
8 0
|
2天前
|
存储 编译器 C语言
C语言初阶⑦(指针初阶)知识点+笔试题(下)
C语言初阶⑦(指针初阶)知识点+笔试题
8 0
|
2天前
|
存储 Linux C语言
C语言初阶⑥(操作符详解)编程作业(算数转换)(下)
C语言初阶⑥(操作符详解)编程作业(算数转换)
7 1
|
2天前
|
存储 C语言 索引
C语言初阶⑥(操作符详解)编程作业(算数转换)(上)
C语言初阶⑥(操作符详解)编程作业(算数转换)
11 0
|
2天前
|
C语言
C语言初阶⑤(数组)扫雷游戏(分步实现+效果图)
C语言初阶⑤(数组)扫雷游戏(分步实现+效果图)
9 1