一.什么是循环语句
循环语句重点在于循环,在C语言中循环语句有while循环,for循环,和do while循环可以给我们使用,玩法多多,下面我来给大家举一个例子,便于更好的理解循环语句。
图片里我用绿色的线代表循环语句,蓝色的线代表循环终止条件,当满足我们的条件,积攒了足够的流量或者直接傍上了大款循环就会终止,一个完整的循环语句要有判断条件,调整部分和循环语句。下面让我们来进入今天的主题吧!
1.1while循环语句
首先我们来看一下while循环语句的格式,直接上代码!
int main()
{
int i = 0;//初始化一个变量
while (i < 5)//判断条件
{
printf("%d ",i);//循环语句
i++;//调整部分
}
return 0;
}
这里我们发现,运行一下打印的1是0,1,2,3,4 这段代码的逻辑很简单,首先创立了一个变量i 之后判断i<5进入到while循环中,打印出i,之后i加一,直到判断i不符合条件后退出循环。我们发现这是有调整部分的情况,如果没有会发生什么呢?让我们来看一下。
int main()
{
int i = 0;//初始化一个变量
while (i < 5)//判断条件
{
printf("%d ",i);//循环语句
}
return 0;
}
我们发现没有调整部分会造成死循环,因为i一直等于0条件一直符合所以会无限打印0。
1.2while循环语句中的break
break我在上个文章switch语句里讲过(有兴趣的伙伴可以去看一下哦),翻译成中文就是打破的意思,当在循环中运行到break的时候会直接打破(跳出)这个循环接着执行下面的语句,下面直接上代码!
int main()
{
int i = 0;//初始化一个变量
while (i < 5)//判断条件
{
printf("%d ", i);//循环语句
i++;
if (i > 3)
{
break;
}
}
printf("小黑子");
return 0;
}
这里我们发现少打印了一个4,如果用刚才那段代码确实有4,因为这里我们用了一个if判断i是否>3如果大于3就会执行break,跳出这个循环,接着执行下面的“小黑子”
1.3while循环语句中的continue
break介绍完了,就该介绍跟他配套的continue了,值得注意的是break是直接跳出循环不再执行了,而continue是中止本次循环不再执行continue后面的语句了,所以和break用法有些不同,下面我们直接上代码!
int main()
{
int i = 0;//初始化一个变量
while (i < 5)//判断条件
{
if (i == 3)
{
continue;
}
printf("%d ", i);//循环语句
i++;
}
return 0;
}
这里我们发现只打印了0 1 2并没有打印3而程序也一直没有结束,我们会发现当我的i=3时就会进入到if语句中执行continue而continue下面的内容不会被执行重新进行判断,也就是i++是没有机会执行的,导致i一直等于3进入到死循环。所以当我们用continue时一定要细心哦。
2.1 for循环语句
for循环也是一种循环语句不过跟while有些不同的是,它可以把对变量的初始化,判断语句,调整语句放进()中,下面给大家介绍一下for循环的结构,直接上代码!
include<stdio.h>
nt main()
{
for (变量的初始化; 判断部分; 调整部分)
{
循环语句
}
return 0;
}
for循环中初始化部分只有第一次执行的时候才会运行,后面的循环会围绕着判断部分和调整部分来进行
从这张图我们可以看到,初始化只有程序进入的时候进行了一次,剩下的循环都围绕着判断部分和调整部分进行的。
我们来举个小栗子吧!
需要注意的是if()中的三条语句都要用分号来隔开,当然,不论是变量的初始化,调整语句都可以放在别的地方但是“;”不可以省略会造成语法错误
这里我就把初始化和调整语句放到了别处,结果也是不影响的
2.2 for循环中的break
for循环中的break用法跟while中一样,下面还是拿代码举例
int main()
{
for (int i = 0; i <= 5; i++)
{
printf("%d ", i);
if (i == 4)
{
break;
}
}
return 0;
}
这里当i=4时会执行if语句中的break打破这个循环所以没有打印出5
2.3 for循环中的continue
for循环中的continue很特殊,continue语句当执行的时候后面的程序不在执行,在while语句中如果我们把调整部分放到continue后面就可能造成程序的死循环,但是在for循环当中这个问题能被很好的解决,下面举一个栗子
int main()
{
for (int i = 0; i <= 5; i++)
{
printf("%d ", i);
if (i == 4)
{
continue;
}
}
return 0;
}
在这里我们可以看到程序没有造成死循环,是因为当continue执行后for先进行判断符合条件后,之后直接进行调整,也就是当i=4时遇到continue上去会先判断4是<=5的,然后进行调整增加,这样就不会造成死循环啦。
3.1 do while循环
do while是一个很有意思的循环,这个循环不管符不符合条件都会先把循环体的内容执行一遍,举个栗子,我想做个游戏,我不管符不符合我的条件我都都得先打印菜单出来供用户选择吧,这时候就可以用do while循环。下面给大家看一下do while循环的结构
int main()
{
int i = 0;//初始化部分
do
{
printf("%d ", i);
i++;//调整部分
} while (i<5);//判断部分
return 0;
}
在这里我们可以看到打印了0 1 2 3 4那如果我把判断语句改一下会发生什么呢?
这里我们看到i根本不符合while的条件但还是执行了一次printf,也就是说do while不管你符不符合条件我先执行一次循环内容,所以ddo while的的使用场景很有限只能在一些特定条件下使用,正常情况下用for 或 while语句就可以代替,所以do while语句用的很少。
3.2 do while循环中的break
do while语句中的break和while当中的break是非常类似的,下面我用代码演示一下
int main()
{
int i = 0;//初始化部分
do
{
if(i==3)
{
break;
}
printf("%d ", i);
i++;//调整部分
} while (i<5);//判断部分
return 0;
}
可以看到当i=3时判断if语句进入break循环直接结束跟while语句中的break用法一样
3.3 do while循环中的continue
直接上代码!
int main()
{
int i = 0;//初始化部分
do
{
if(i==3)
{
continue;
}
printf("%d ", i);
i++;//调整部分
} while (i<5);//判断部分
return 0;
}
continue在do while中也进入了死循环,因为他没有机会再进行调整语句,所以在do while 中的continue跟while中的continue也是一模一样的。
二. 总结
经过这篇文章相信大家对C语言当中的循环语句有了一定得了解,大家可以动手试一试,实践才是检验真理的唯一标准。最后看完这篇文章的铁汁们给个点赞加关注,派大星会接下来一直给大家分享关于C语言的知识哦!抱拳了,老铁们!