前言🙌
在上一节课当中,我们主要了解了分支语句和putchar函数与getchar函数,所以,在这一节当中,我们主要是了解循环语句的用法。
1、循环语句😊
在前面我们已经了解了C语言基本上有三大结构,分别是顺序结构、分支结构、与循环结构。其中,循环结构可以大概分为三大类:
- while循环语句
- for循环语句
- do…while循环语句
下面我们将依次了解这三大循环结构。
2、while循环语句✌️
首先我们已经了解到了if语句的使用方法,if语句的使用方法简单来讲就是当条件满足的时候,语句会执行,当条件不满足的时候,语句则就不会执行。这个语句只会执行一次。
if(表达式)
{
语句;
.....
}
因此我们可以用类比的方法来类比while循环语句,while循环语句的语法结构与if语句基本上类似,唯一的区别在于while语句可以判断并且执行多次,具体如下所示:
while(表达式)
{
循环语句;
.......
}
在具体的应用当中,比如我们想要打印数字1~10应该怎么打印呢?那么我们就可以使用while循环语句:
int main()
{
int i = 1;//初始化
while (i <= 10)//判断
{
printf("%d ", i);
i++;//调整
}
return 0;
}
简单来说,while语句的执行逻辑还是比较简单的,以上面的这段代码为例子,首先我们是定义一个变量i并且把它初始化为1,其次我们进行判断,如果i小于或者等于10,便进行循环输出,最后在i输出以后在后面加1,最后进行下一次的循环,直到不满足循环条件为止,则跳出循环,程序结束。
下面呢,我们来看一下while循环语句当中的break和continue,具体的代码如下所示:
#include<stdio.h>
int main()
{
int i = 1;//初始化
while (i <= 10)//判断
{
if (i == 5)
{
printf("END!\n");
break;
}
printf("%d ", i);
i++;//调整
}
return 0;
}
接下来看一下运行结果:
这里呢,我们来说一下break的作用,当程序运行起来的时候,运行到“i == 5”的时候,执行break语句,实现了跳出跳出循环的功能。因此break语句在while循环当中的作用主要是:
1.在循环语句当中遇到break的时候,就停止break语句后的全部循环,实现了跳出循环的功能。
2.while语句当中的break是用于永久终止循环。
当我们了解到了break的作用之后,我们就来看一看continue的作用:
#include<stdio.h>
int main()
{
int i = 1;//初始化
while (i <= 10)//判断
{
if (i == 5)
{
printf("END!\n");
continue;
}
printf("%d ", i);
i++;//调整
}
return 0;
}
在这段代码当中我们可以看到,continue语句同样可以跳出循环,但是和break语句不同之处在于,continue语句只能用于跳出并且终止本次循环,也就是本次循环当中continue语句后面的代码不再执行,而是直接跳转到while语句的判断部分,进入到下一次循环的入口判断,因此,这段代码的运行结果是一个死循环。
3、 for循环语句👍
- 我们已经了解到了while语句的用法,接下来我们讲解一下for循环语句的用法,for循环语句相对于while语句来讲用法相对来说比较简单,三个必要的条件部分(初始化、判断、调整部分)更加明了清晰,查找和修改的时候比较方便。
for循环的语法结构:
for(表达式1;表达式2;表达式3)
{
循环语句;
...
}
表达式1
表达式1为初始化部分,用于初始化循环变量。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
同样地,我们来使用for循环语句在屏幕上面打印1~10的数字:
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
2.for循环当中的break和continue
在for循环当中的break和continue语句的用法基本和while循环相同,在continue当中只有一小点区别,主要在在于后面的调整部分的差异,以代码为例子来看:
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
3.for循环的循环控制变量
对于for循环当中的变量控制,有以下几点的建议:
1. 不可以在for循环体当中修改循环变量,以防止for循环失去控制;
2. 建议for循环语句的循环控制变量的取值采用“前闭后开的写法”;
以上的两条建议,都是为了我们以后可以形成一个良好的代码风格,可以大大减少我们后期维护的工作量。
4、 do…while循环语句❤️
1.do…while循环语句的语法结构:
do()
{
循环语句;
...
}while(表达式);
2.语句的特点:
do…while语句的特点跟while语句十分类似,但是还是有一点点不相同,不同的地方在于do…while语句是先执行后判断,因此循环语句当中的内容至少会执行一次。因此也导致其使用场景很有限,并不是很常用。
3.do…while语句当中的break和continue
在do…while语句当中也一样可以使用break和continue语句,它们的意义和用法和在while循环语句当中基本相同。