本篇文章将会着重讲解循环结构
顺序结构和选择结构的详细讲解请阅读上篇文章
【C语言基础篇】结构控制(上)顺序结构和选择结构-CSDN博客
关于转向语句break、continue 、goto和return语句在下一篇文章介绍
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return-CSDN博客
一、循环结构
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
它根据循环体中的条件,来判断继续执行还是退出循环。
循环结构包含三个要素:循环变量、循环体和循环终止条件。
根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
C语言中先判断后执行的循环结构为while语句和for语句,先执行后判断的循环结构为do while语句,下面逐次介绍
1. while语句
while 语句的语法结构和 if 语句非常相似
⾸先上来就是执行判断表达式,表达式的值为0(为假),循环直接结束;表达式的值不为0(为真),则执行循环语 句,语句执行完后再继续判断,是否进行下⼀次判断
while循环的循环三要素的位置:循环变量在循环外创建和初始化,循环终止条件放在while后面的()内,而循环体内包含对循环变量的控制。
例如:在屏幕上打印1~10的值
#include <stdio.h> int main() { int i = 1;//循环变量 while(i<=10)//循环结束条件 { printf("%d ", i); i = i+1;//循环体内的循环变量控制语句 } return 0; }
2. for语句
for 循环是三种循环中使用最多的, for 循环的语法形式如下
for(表达式1;表达式2;表达式3)
{
循环语句;
}
说明:
表达式1⽤于循环变量的初始化
表达式2⽤于循环结束条件的判断
表达式3⽤于循环变量的调整
要特别注意,三个表达式之间用两个分号隔开,而不是逗号
for循环与while循环相比的优点
for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优⼀些。这也是for循环在实际中更常用的原因
for循环的执行过程
⾸先执行 表达式1 初始化循环变量,接下来就是执行 表达式2 的判断部分, 表达式2 的结果如果 ==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继 续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。
例如:在屏幕上打印1~10的值
#include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++) { printf("%d ", i); } return 0; }
3. do while语句
在循环语句中 do while 语句的使用最少,它的语法如下
do
{
语句;
} while(表达式);
注意
while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
do while循环的执行过程
在 do while 循环中先执行“语句”,执行完语句,在去执行“判断表达式”,判断表达式的 结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是至少执行⼀次的,这是 do while 循环比较特殊的地⽅。
练习:在屏幕上打印1~10的值
#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i = i + 1; }while(i<=10); return 0; }
4. 循环结构总结
常用的三种循环结构的重点在于弄清它们相同与不同之处,以便在不同场合下使用。这就要清楚三种循环的格式和执行顺序。
在学完这三个循环后,应明确它们的异同点:
- 用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;
- while 循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。
- 另外还要注意的是这三种循环都可以break跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。
关于转向语句break、continue 、goto和return语句在下一篇文章介绍