目录
前言
循环语句
while循环
while循环中的break
while循环中的continue
for循环
for循环中的break
for循环中的continue
do while循环:
do while循环中的break
do while循环中的continue
上一篇博客【C语言】分支语句详解中介绍了C语言的语句种类,详细讲解了C语言控制语句中的分支语句(也叫条件判断语句),这篇博客将带领大家学习C语言种另一种重要的语句即控制语句中的循环语句。
在C语言种一共有三种循环语句分别是:
⭐while循环
⭐for循环
⭐do while循环
下面我们将逐个进行学习
循环语句流程图:
while循环的执行流程:While循环是先进入判断表达式判断为真,执行语句,然后循环变量加1,如果为假跳出循环,判断条件至少要执行一次。
while循环的语法结构与分支语句中的if语句非常相似,下面我们看一下while循环的语法结构:
while(表达式)
{
循环语句;
}
举一个例子:
#include
int main()
{
int i = 0;//定义一个初始变量
while (i <= 10)//这是判断条件
{
printf("%d\n", i);
i++;//调整部分
}
return 0;
}
初始i==0,进入while循环语句进行判断0<=10为真所以执行循环语句,打印0之后i++,进行下一次判断:1<=10为真,直到i==11,11<=10为假,不再执行循环语句。所以最终会打印0-10.
break也可以用在while循环里,我们接下来学习一下break语句在while循环中的作用:
以代码为例:
#include
int main()
{
int i = 0;//定义一个初始变量
while (i <= 10)//这是判断条件
{
if (i == 5)
break;
printf(" %d\n", i);
i++;//调整部分
}
return 0;
}
我们将上面循环打印0-10的代码多加了一个if判断和break语句,即当i==5时跳出循环体,不在执行后面的循环。
运行结果如下:
通过上述代码我们可以认识到break语句可以用于跳出循环
break语句在while语句的作用是永久的终止循环,只要遇到break循环,循环就终止。
与break语句一样,continue语句也可以用在while循环中,我们接下来学习一下continue语句在while循环中的作用:
以代码为例:
int main()
{
int i = 0;
while (i <= 10)
{
if (i == 5)
continue;
printf(" %d \n", i);
i++;
}
return 0;
}
可以看到当打印到4的时候代码陷入死循环,这是因为continue的作用是跳过此次循环直接进入下一次循环,那么当i==5时编译器遇到了contiue语句,它就会直接跳出此次循环,因此并未执行i++操作,所以此时i还是等于5,继续下一次循环又会遇到continue语句,依然无法执行i++操作,所以i的值一直为5,代码循环执行,陷入死循环。
continue在while循环中的作用:
跳过本次循环后续语句,直接进入下次循环。
for循环的语法结构:
for(表达式1;表达式2;表达式3)
{
循环语句;
}
表达式1:
表达式1为初始化部分,用于初始化循环变量的。
表达式2:
表达式2为条件判断部分,用于判断循环是否终止。
表达式3:
表达式3为调整部分,用于循环条件的调整。
for循环的执行过程:先执行初始化部分(只会被执行一次),再执行条件判断部分,然后执行循环语句,最后执行调整部分。
以代码打印1-10为例子:
int main
()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf(" %d\n", i);
}
return 0;
}
运行结果如下:
我们对比一些for循环和while循环,可以明显看出for循环比while循环简单更高效。
for循环相对于while循环的优点:
在while循环中也有for循环的三个表达式条件。但是由于代码风格的问题使得三个部分可能偏离较远,这样查找修改就不够集中和方便。所以for循环的风格更好,使用频率也最高。
以下面的代码为例:
int main()
{
int i = 0;
for (i = 0; i <= 10; i++)
{
if (i == 5)
break;
printf(" %d\n", i);
}
return 0;
}
运行结果如下:
通过运行结果看出,break语句在for循环和while循环一样直接终止循环。
Break在for循环中的作用:
永久的终止循环,只要遇到break循环,循环就终止
以下面代码为例:
int main()
{
int i = 0;
for (i = 0; i <= 10; i++)
{
if (i == 5)
continue;
printf(" %d\n", i);
}
return 0;
}
运行结果如下:
可以看到跳过了5的打印
根据运行结果来推断当i等于5时跳过了后面的语句,来到了调整部分。
得出结论:会跳过continue后面的语句,直接去调整部分
建议:
1.不要在for循环体内修改循环变量,防止for循环失去控制
2.不要在for循环体内修改循环变量,防止for循环失去控制建议for循环的循环控制变量采“前闭后开区间”的写法
注意:
初始化,判断部分,调整部分都可以被省略,但是判断部分被省略的话意味判断部分恒为真,那么会进入死循环
do while循环的执行流程:
先执行循环语句,之后在进入调整部分,最后进入判断语句,循环体至少要执行一次。循环体包括循环语句和调整部分。
依然用打印1-10为例:
int main()
{
int i = 1;
do
{
printf(" %d\n", i);
i++;
} while (i<=10);
return 0;
}
运行结果如下:
int main()
{
int i = 0;
do
{
if (i == 5)
break;
printf(" %d\n", i);
i++;
} while (i <= 10);
return 0;
}
结果如下:
根据运行结果可以看出breal语句在do while循环和前两种循环作用是一样的
break在do while循环中的作用:
永久的终止循环,只要遇到break循环,循环就终止
int main()
{
int i = 0;
do
{
if (i == 5)
continue;
printf(" %d\n", i);
i++;
} while (i<=10);
return 0;
}
运行结果如下:
从运行结果看出continue语句在do while循环和while循环的作用是一样的。
continue在do while循环中的作用:
跳过本次循环后面的代码,直接去判断部分
以上便是我为大家带来的循环语句的全部内容,若有不足,望各位大佬在评论区指出,谢谢大家!可以留下你们点赞、收藏和关注,这是对我极大的鼓励,我也会更加努力创作更优质的作品。再次感谢大家!