生活中有些事情需要我们重复、反复的去做,这时我们就可以说我们循环的去做这件事。
要学习循环语句,首先我们介绍一下程序设计语言中的循环是什么意思:
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,常见的有按照次数循环和按照条件循环。
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,取决于循环的终止条件。循环语句是由循环体及循环的终止条件两部分组成的。
那么接下来我们就来介绍一下C语言中的3中循环:
一.while循环
我们已经掌握了,if语句:
if(条件)
语句;
当条件满足的情况下,if语句后的语句执行,否则不执行。
但是这个语句只会执行一次。
由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C语言中给我们引入了: while 语句,可以实现循环。
1.语法介绍和基本使用
首先我们来学习while循环,那什么是while循环呢?
我们知道,while有当…的时候的意思,所以while循环就是当满足一个特定条件是执行循环体,一旦不满足,就结束循环。
while的语法结构:
//while 语法结构 while (表达式) 循环语句;
举个例子,我们想要在屏幕上打印数字1——10,就可以使用while循环:
#include <stdio.h> int main() { int i = 1; while (i <= 10) { printf("%d ", i); i = i + 1; } return 0; }
当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; }
大家思考一下,输出的结果是啥:
答案是是的!!!,循环中遇到break循环就直接结束了。
break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以: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; }
思考一下,结果是什么?
为什么出现这样的情况呢?别急,我们再来看一个代码:
//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语句前面,那结果会有什么不同呢?
是这样吗?确实是的。
现在我们就可以很好的解释上一个代码的结果了:
总结:
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
二.for循环
1.语法介绍和基本使用
我们已经知道了while循环,但是我们为什么还要一个for循环呢?
首先来看看for循环的语法:
for(表达式1; 表达式2; 表达式3) 循环语句;
看一个实际的问题:
使用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; }
来看看结果是啥:
相信现在大家对于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; }
代码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; }
好的一点时我们在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; }
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。(只是建议,这样写不合适的话也不必强求)
5. 一些for循环的变种
for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题
1.
举个例子:
#include <stdio.h> int main() { //代码1 for (;;) { printf("hehe\n"); } }
死循环了,为啥呢?
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次。
那还是这段代码,如果省略掉初始化部分,这里打印多少个hehe?
//代码3 int i = 0; int j = 0; //如果省略掉初始化部分,这里打印多少个hehe? for(; i<10; i++) { for(; j<10; j++) { printf("hehe\n"); } }
去掉初始化部分后,值打印10次:
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; }
好了,for循环就介绍完了。
三.do while循环
接下来介绍do while循环
1.语法介绍和基本使用
do 循环语句; while (表达式);
特点:
循环至少执行一次,使用的场景有限,所以不是经常使用。
#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i=i+1; }while(i<=10); return 0; }
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; }
代码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; }
以上就是对C语言中循环语句的介绍了。
欢迎大家指正!!!