在我们的生活中,有许多事情,我们需要完成很多次,如果仅仅使用 if 语句是不够的,这时候,我们就需要用到循环了。
C语言中提供了3中循环执行语句:
- while- for- do while
while循环
//while 语法结构
while(表达式)
循环语句;
让我们通过一个简单的代码来帮助我们了解while语句的基本语法
//在屏幕上打印1-1依次0的数字。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0; }
创建int 类型的 i 变量并赋值为1,在进入循环体后,先打印一次i,再对i的值进行+1,这样一次循环就结束了,i的值变成2,再跳到表达式,如果i <= 10,则表达式成立,再次进入循环,直到表达式不成立时,循环结束。
while语句中的break和continue
break在while循环中的作用:
其实在循环中只要遇到 break ,就停止后期的所有的循环,直接终止循环。所以: while 中的 break 是用于 永久 终止循环的。
continue在while循环中的作用:
continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,而是直接跳转到 while 语句的判断部分。进行下一次循环的入口判断。
for循环
//for 循环语法结构
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1:为 初始化部分 ,用于初始化循环变量的。表达式 2 : 为 条件判断部分 ,用于判断循环时候终止。表达式3:为 调整部分 ,用于循环条件的调整。
仍然是在屏幕上打印1-10的数字,用for循环来写:
#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; }
同样一个问题,不管是用while循环来写还是for循环来写,都是可以实现的,那这两个循环语句有什么区别呢?
我们通过下面这段代码来分析:
int i = 0;
//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
printf("hehe\n");
i = i+1;//调整部分
}
//实现相同的功能,使用for
for(i=1; i<=10; i++) {
printf("hehe\n");
}
可以发现在 while 循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以for循环的使用频率也会高一些。
for循环语句中的break和continue
现在 for 循环中也可以出现 break 和 continue ,他们的意义和在 while 循环中是一样的。
for语句的循环控制变量
注意:1. 不可在 for 循环体内修改循环变量,防止 for 循环失去控制。2. 建议 for 语句的循环控制变量的取值采用 “ 前闭后开区间 ” 写法。
do...while()循环
//do...while()循环语句结构
do
循环语句;
while(表达式);
do语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用。而 while 语句的循环体则有可能一次也不会执行。
另外,在判断循环是否继续执行的时间方面,do 语句和 while 语句也完全不同。
do 语句 —— 先循环后判断:执行循环体之后进行判断。
while语句 —— 先判断后循环:执行循环体之前进行判断。
goto语句
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。
从理论上 goto 语句是没有必要的,实践中没有 goto 语句也可以很容易的写出代码。但是某些场合下 goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。