概要
本篇主要介绍C语言里的循环语句:while语句;for语句;do…while语句
while语句
while语句格式
while语句格式跟if语句格式相似,对比一下if跟while语句
if(表达式)
{
语句
}
while(表达式)
{
语句
}
都是对表达式进行判断,表达式结果为真,则执行代码段;为假则跳过改代码段,不同的是if只能执行一次,而while可以重复多次,而重复的次数则有表达式来决定。
小练习
循环打印9次“hehe”。
#include<stdio.h>
int main()
{
int i = 0;
while (i < 9)
{
printf("hehe\n");
i++;
}
return 0;
}
其中“i<9”是判断表达式,“i++”是自动加1,i由0开始进行循环,一共循环9次,当循环进行到第10次时i已经加到了9,判定(9<9)为假,跳过循环。
运行结果如下(i由0加到9一共打印了9次):
这就是while语句,相对简单,接下来介绍for语句。
for语句
for语句格式
for(表达式1;表达式2;表达式3)
{
语句
}
表达式1:对循环变量设置初值
表达式2:循环条件的判断
表达式3:对循环变量的调整
for语句的工作顺序是:
1.运行表达式1,对变量赋值
2.运行表达式2,对循环条件进行判断是否满足循环条件,满足条件运行代码段(也就是语句),不满足结束循环
3.运行代码段
4. 运行表达式3,对循环变量进行调整
小练习
打印1-10的数字
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
循环变量由1开始运行,循环一次加1,打印当前循环变量的值,当加到11时不满不“i<=10”的条件,结束循环,在此期间一共循环了10次,刚好打印1-10的数字。
以上就是for循环的运行原理跟运行过程,以及一个简单的小练习,希望可以让您对for循环有更深的了解。
do…while循环
最后一部分内容来介绍一下do…while循环
do…while循环结构
在C语言循环语句中它do…while循环使用最少,它的结构如下:
do
语句;
while(表达式);
do…while语句与前两种有明显的差别,前两种都是先进行条件判断,在执行循环语句,而do…while语句是先进行一次循环再进行条件判断,判断结果为真进行下次循环,为假则不继续循环。
小练习
输⼊⼀个正整数,计算这个整数是⼏位数
这个练习比较适合用do…while循环,因为n如果是0,也是1位数。
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int cnt = 0;
do
{
cnt++;
n = n / 10;
} while (n);
printf("%d\n", cnt);
return 0;
}
运行结果如图:
--------------------------------------------------分割符
在循环中有时候会用到break函数跟continue函数,break在上一篇文章里已经介绍过了,这里就不做过多解释了,接下来简单了解一下continue函数
continue 是继续的意思,在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏下⼀次循环的判断。他在不同的循环里面造成的影响不同。
一、在while循环里
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
//当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅ //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
printf("%d ", i);
i = i+1;
}
return 0;
}
二、在for循环里
#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分 printf("%d ", i);
}
return 0;
}
大家可以复制去试着运行一下,运行结果的分析已经在代码里面标注了注释。
注:在for循环里continue并不会跳过“i++”这条代码,所以他的运行结果与while语句完全不同。
--------------------------------------------分隔符
至此本次介绍就全部结束了,感谢大家的观看,以上文章皆是我个人理解,如有错误请在评论区指正,谢谢大家