前言
在上文我为大家介绍了选择结构的分类及其用法,而本篇,将为大家介绍循环结构的分类及其用法。
(前文链接:C语言中的分支循环语句(分支语句)-CSDN博客)
在循环结构中,主要包括:
1 循环语句 while循环 for循环 do-while循环(循环体)goto循环
2 break语句 continue语句
一.循环语句
1.1 while循环(当形循环)
while语法结构如下:
while(判断表达式){
语句
}
其中,while 中的 判断表达式 与前文中 if 的 判断表达式 用法相同,甚至可以说,后面循环语句中的 所有 判断表达式 用法相同。但对于 循环语句 来说,当 判断表达式 为非零时,会执行 循环语句 内的 语句 。但与 分支语句 只执行一次不同,循环语句 会一直执行其内部语句, 直到
判断表达式 为 零 时 跳出 循环语句(下文循环语句用法相同)
如果没有看懂,没关系。下面一个例子我会给大家说明 while 是怎么使用的。
#include <stdio.h>
int main(){
//计算1+2+...+9+10
int n = 10;
int i = 1;
int sum = 0;
while(i<=n){
sum = sum + i;
i++;
}
printf("%d",sum);
return 0;
}
其中,while中 循环条件 是 i
小于或等于 n
(即循环10次),而在循环体内,将i
的值加到sum
上来实现求和,最后 i 自增。
注意:
如果没有特殊要求(例如需要实现多次输入之类需要 死循环 的要求),循环体的 判断表达式 最终结果都是 零 。以便跳出循环来执行下面的语句块。
1.2do-while循环 (直到型循环)
do-while语法结构如下:
do{
语句块
}while(判断表达式)
与 while循环 大体相同,唯一区别就是 do-while循环 是先执行循环内的语句后,在进行执行 判断表达式 ()。如下图所示:
两个循环体的不同用途:
- 由于
while
循环在进入循环体之前检查条件,所以它通常用于那些条件一开始就不满足的循环,这样可以避免一次不必要的函数调用或计算。- 由于
do-while
循环在循环体执行后检查条件,所以它更适用于至少执行一次循环体的场景,即使条件最初为假。
下面是一个问题的两种解法的例子:
// 使用while循环
int i = 0;
while (i < 5) {
printf("%d\n", i);
i++;
}
// 输出: 0, 1, 2, 3, 4
// 使用do-while循环
int j = 0;
do {
printf("%d\n", j);
j++;
} while (j < 5);
// 输出: 0, 1, 2, 3, 4
在第一个例子中,我们使用 while
循环 从0打印到4。
在第二个例子中,我们使用 do-while
循环 从0打印到4。
(本人习惯)大多数情况都是使用while循环,do-while本人不常用。
1.3 goto循环(不推荐观看与使用)
goto
是许多编程语言中的一个关键字,它用于控制程序的流程。当程序遇到 goto
语句时,控制会直接跳转到指定的标签处,跳过中间的代码。
以下是一个简单的例子,展示了 goto
在 C 语言中的用法:
#include <stdio.h>
int main() {
int i = 0;
loop: // 这是标签
if (i < 5) {
printf("当前数字:%d\n", i);
i++;
goto loop; // 跳转到标签 "loop" 处
}
return 0;
}
在上面的例子中,程序会不断地打印数字直到 i
达到 5。goto
语句将使程序跳转回标签 loop
,从而重复整个循环。
尽管 goto
在某些情况下可以用来简化代码,但过度或不当地使用 goto
通常会使代码变得难以理解和维护。因此,许多现代编程风格和最佳实践建议避免使用 goto
,除非在某些特定的、可预测的场景中(例如错误处理或资源清理)。
1.4 for循环
for语法结构如下:
for (初始化语句; 条件语句; 后续语句)
{
循环体
}
初始化语句:在循环开始之前执行一次。它通常用于设置循环计数器或为循环变量分配初值。
条件语句:每次循环开始时检查一次。如果条件为真(非零),则执行循环体;如果条件为假(零),则退出循环。
后续语句:每次循环结束后执行一次。它通常用于更新循环变量或执行其他需要在每次循环后进行的操作。
下面是一个简单的例子,使用for
循环打印数字1到5:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
printf("%d\n", i);
}
return 0;
}
在这个例子中:
初始化语句 是 i = 1
,它将变量 i
设置为1。
条件语句 是 i <= 5
,只要 i
的值小于或等于5,就会执行循环体。
后续语句 是 i++
,在每次循环结束后将 i
的值增加1。
二.控制语句(break与continue)
2.1 break语句
在C语言中,break语句 用于在 循环 或 switch语句 中 提前终止循环 或 跳出switch语句。当break语句 执行时,它会 立即终止 当前循环 或 switch语句的执行,并跳转到循环或switch语句之后的下一个语句。
下面是一个示例,演示了break语句在循环中的使用(对于switch使用,上篇有讲,此处不在提及):
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 10; i++) {
if (i == 5) {
break;
}
printf("%d ", i);
}
printf("\n");
return 0;
}
在这个示例中,我们使用for循环从0循环到9,但是当i等于5时,我们使用break语句终止循环。因此,当i等于5时,循环立即终止,并跳出循环,输出结果为`0 1 2 3 4`。
2.2 continue语句
continue语句 用于在循环中跳过当前循环并开始下一次循环。它的作用是 终止当前的循环,直接 进入 下一次循环。
示例:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
if (i == 5) {
continue; // 当i等于5时跳过当前循环,开始下一次循环
}
printf("%d ", i);
}
return 0;
}
在上面的示例中,我们使用for循环1到10的数字。当i等于5时,continue语句被执行,会跳过当前循环,直接进行下一次循环。因此,输出结果将会是1 2 3 4 6 7 8 9 10。
注意
continue语句 只能用在 循环语句 中,如for循环、while循环和do-while循环等。
制作不宜,还望多多支持QWQ。