一般来说,循环的方式可以分为两种:入口循环和出口循环,什么意思呢?入口循环是先进行循环,再执行每次循环要做的事情,比如上面的 while 循环、for 循环,他们都是先进行判断是否需要进行下一次循环,如果需要的话,才会打印出 i 的值,这就是入口循环。
而出口循环则是要先执行代码,再判断是否要进行下一次循环,即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次,典型的出口循环就是 do ... while。
我们把上面的代码进行修改:
#include <stdio.h>
int main()
{
int i = 1;
do{
printf("%d\n", i);
i ;
}while(i <= 10);
return 0;
}
从输出结果可以看到,do while 循环在执行完循环体后才执行测试条件,所以 do ... while 循环至少执行循环体一次,而 for 循环和 while 循环在执行循环体之前先执行测试条件,do ... while 的一般形式如下
do
代码
while ( 表达式 );
do ... while 循环的流程图如下
到现在为止, C 语言中的程序控制语句我们都了解了,那么该如何进行选择呢?
实际上上面我们已经稍微讨论了一下如何选择的问题了。
while 循环和 for 循环很类似,这两类循环都是先进行一次循环条件的判断,然后再执行具体的循环体操作,只要一次循环条件不满足则一次都不会执行;而 do ... while 循环会至少先进行一次循环,然后才会执行循环判断。
一般来说,使用 for 循环的场景比较多,因为 for 循环形式更加简洁,而且在 for 循环中,变量和判断以及更新的作用域都在循环体内,不会有其他外部代码来修改这些变量,更可控,在 while 和 do ... while 循环中,变量的更新不可控,而且代码也没有 for 循环可读性强。
break 和 continuebreak 和 continue 相当于是循环体内领导者的这样一个角色,有了这两个角色存在,循环体内的代码会根据这两个关键字来判断是中断循环还是执行下一次循环。
C 语言中的 break 有两种用法:
- 一种用法是用在循环体中,当 break 出现在循环体中时,会中断这个循环。
- 一种用法是用在 switch 语句中,用作中断这个 switch 语句的 case 条件。
break 用于中断循环:如下代码所示
#include <stdio.h>
int main(void)
{
for(int i = 1;i <= 10;i ){
if(i == 5){
break;
}
printf("i 的值 = %d\n",i);
}
return 0;
}
输出的结果是 i 的值 = 1 - 4, 当 i == 5 时,会进入到 if 判断中,if 判断会直接触发 break,break 用于跳出当前循环,当前是 for 循环,所以 break 会直接跳到 for 循环外面,也就是直接 return ,不会再打印 i 的值。
continue 关键字用于跳过当前循环,执行下一次循环,它和 break 很相似但是有着本质的区别,break 是跳出循环,continue 是执行下一次循环,我们同样拿这个代码来说明,只需要把上面的 break 改成 continue 即可。
#include <stdio.h>
int main(void)
{
for(int i = 1;i <= 10;i ){
if(i == 5){
continue;
}
printf("i 的值 = %d\n",i);
}
return 0;
}
(这段代码的输出结果会输出出 i = 5 以外的值)
从输出结果可以看出,只有 i = 5 的值没有输出,这也就是说,当代码执行到 i == 5 的时候,会进行 continue 继续执行当前循环,从而跳过这次循环后面的代码,如下图所示。
总结这篇文章我主要和你聊了聊 C 语言中的函数,函数定义、函数返回值、参数以及程序控制流程中的三类循环的特点以及选型,最后又介绍了一下 break 和 continue 的作用。
如果文章对你有帮助,还请各位小伙伴们三连支持哦!