目录
一、前言
- C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构。
- 此前通过 详解C语言分支语句 对选择结构进行剖析。
- 本篇文章将对其中的循环结构进行详细的分析。
二、循环语句
- 循环语句主要包括 for 循环、while 循环和 do-while 循环
三、for 循环
1、语法形式
-☞ for语句的语法形式如下:
for (表达式1; 表达式2; 表达式3)
{ 执行语句 }
- 表达式1用于循环变量的初始化
- 表达式2用于循环结束条件的判断
- 表达式3用于循环变量的调整
- 示例:
for (int i = 0; i < 5; i++)
{ printf("%d ", i) };
2、执行流程

- 1、 首先执行初始化 表达式1,通常用于初始化循环变量。
- 2.、然后判断条件 表达式2,如果条件为真即 !0,则进入循环体执行语句,如果条件为假 ==0。
- 3.、执行完循环体后,执行调整表达式3,用于更新循环变量的值。
- 4.、再次回到步骤 2 进行条件判断,如此反复,直到条件表达式为假时,结束循环。
- 5、整个过程中,表达式1 只被执行1次,剩下的是表达式2、执行语句、表达式3在进行循环。
3、注意点和易错点:
- 要确保初始化表达式、条件表达式和迭代表达式的正确性和逻辑合理性。
- 注意循环变量的作用域,避免意外的修改。
四、while 循环
1、语法形式
- ☞while语句的语法形式如下:
while (判断表达式)
{ 执行语句 }
- 判断表达式用于执行条件的判断
- 执行语句用于循环语句的执行
示例:
int i = 0;
while (i < 5)
{ printf("%d ", i); i++; }
2、执行流程

- 首先,执行 判断表达式,如表达式值为0,则循环结束;如表达式值为**!0**,则执行循环语句,语句执行完毕后继续进行判断表达式,是否满足条件。
3、if和while的对比
- if 语句和 while 语句都有条件判断,但它们的使用场景和执行方式有所不同,下面是两者的具体区别:
- 使用场景:
- if 语句:适用于需要根据条件选择性地执行某段代码的情况。
- while 语句:适用于需要重复执行某段代码直到条件不再满足的情况。
- 执行方式:
- if 语句:如果条件为真,则执行 if 代码块中的语句,执行完毕后,
继续执行后续的代码,不会再次判断条件。
- while 语句:先判断条件是否为真,如果为真,则执行 while 代码
块中的语句,执行完毕后,再次判断条件,直到条件为假,才停止循环。
- 下面是一个使用 if 语句和 while 语句的示例:
- if 语句示例
num = 5;
if (num > 10)
print("num 大于 10");
else
print("num 小于或等于 10");
- while 语句示例
num = 1;
while (num <= 5)
{
print("num 的值为:%d", num);
num += 1;
}
- 在上述示例中,定义了变量 num 并分别赋值为 5 和 1。
- 然后使用 if 语句判断 num 的值是否大于 10,并根据判断结果输出相应的信息。接下来使用 while 语句判断 num 的值是否小于或等于 5,如果是,则执行 while 代码块中的语句,输出 num 的值,并将 num 的值加 1,直到 num 的值大于 5 为止。
4、注意点和易错点
- 容易出现忘记修改循环条件导致死循环的情况。
- 同样要注意循环变量的处理。
五、do-while 循环
1、语法形式
- ☞do while语句的语法形式如下:
do { 语句 }
while (条件表达式);
- 先执行一次语句
- 再通过条件表达式来判断条件是否满足循环条件
示例:
int i = 0;
do
{ printf("%d ", i); i++; }
while (i < 5);
2、执行流程

- 在 do while 循环中,先执行 语句 ,执行完成后,在去执行 判断表达式 ,如果判断表达式 的结果是 0 ,则结束循环;如果 判断表达式 的结果是 !0,则继续循环,执行语句。
3、注意点和易错点
- 要特别注意条件的设置,确保最终能正常结束循环。
六、break和continue语句
1、break和continue的在循环中的重要作用
-
在 C 语言中, break 和 continue 语句都可以在循环语句中使用,用于控制循环的执行。它们的具体作用如下:
-
☞ break 语句的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
-
☞ continue 语句的作用是跳过本次循环 continue 后边的代码,直接去判断部分,进行下一次循环的判定。
2、循环语句中举例
- 下面是使用三种循环语句的示例:
//for循环中使用break和continue
#include <stdio.h>
int main()
{
//使用break
for (int i = 1; ; i++)
{
if (i <= 100)
{
printf("%d ", i);
}
else
{
break;
}
}
printf("\n");
//使用continue
for (int i = 1; i > 0; i++)
{
if (i <= 100)
{
printf("%d ", i);
}
else
{
continue;
}
}
return 0;
}
//while循环中使用break和continue
#include <stdio.h>
int main()
{
//使用break
int i = 1;
while (i!= 0)
{
printf("%d ", i);
i++;
if (i > 100)
{
break;
}
}
printf("\n");
//使用continue
i = 1;
while (i!= 0)
{
if (i > 100)
{
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
//do while循环中使用break和continue
#include <stdio.h>
int main()
{
//使用break
int i = 1;
do {
printf("%d ", i);
if (i >= 100)
{
break;
}
} while (i++);
printf("\n");
//使用continue
i = 1;
do {
if (i > 100)
{
continue;
}
printf("%d ", i);
i++;
} while (i++);
return 0;
}
在上述代码中, break 和 continue 的区别主要体现在以下几个方面:
- break 会立即结束整个循环,并跳出循环体外。而 continue 则只会结束当前一次循环,继续执行下一次循环。
- 使用 break 时,循环条件中的值不再被检查,直接跳出循环。而使用 continue 时,循环条件仍然被检查,只是当前一次循环被跳过。
- 通常情况下, break 用于退出循环,而 continue 用于跳过某些特定的迭代。
七、循环的嵌套
-
在 C 语言中,循环的嵌套是指在一个循环结构中,再嵌套一个或多个完整的循环结构。嵌套的循环可以是相同类型的循环,也可以是不同类型的循环,例如在一个 for 循环中嵌套一个 while 循环,或者在一个 while 循环中嵌套一个 do-while 循环。
-
以下是一个使用 for 循环嵌套的示例代码,用于打印一个九九乘法表:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ", j, i, i * j);
}
printf("\n");
}
return 0;
}
-
在上述代码中,我们使用了两个嵌套的 for 循环。外层循环控制行数,从 1 到 9。内层循环控制每行的乘法表达式数量,从 1 到当前的行数。在内层循环中,通过打印乘法表达式 j * i 来显示乘法表的内容。每行结束后,我们使用 printf(“\n”); 换行,以便在下一行继续打印。
-
循环嵌套的执行顺序是先执行外层循环的一次迭代,然后执行内层循环的所有迭代。在内层循环执行完毕后,再进行外层循环的下一次迭代。这个过程会一直重复,直到外层循环执行完毕。
八、go to语句
1、基本作用
- 在C语言中, 提供了一种特别的语法,可以使用goto 语句无条件转移到同一函数内的被标记的语句。
- 例如:
#include <stdio.h>
int main() {
int a = 10;
LOOP:
do {
if (a == 15)
{
a = a + 1;
goto LOOP;
}
printf("a 的值:%d\n", a);
a++;
} while (a < 20);
return 0;
}
- 上述代码中, goto 语句将控制转移到了 LOOP 标签处,从而实现了跳过迭代的效果。
2、注意事项
- 一般来说,在C语言中不建议使用 goto 语句,因为它会使程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序都可以改写成不需要使用 goto 语句的写法。
九、总结
- 循环语句为程序实现重复执行特定代码段提供了灵活的方式,开发者可以根据具体需求选择合适的循环结构来实现相应的逻辑。
- for 循环:
for (初始化表达式; 条件表达式; 调试表达式)
{
// 循环语句
}
-
它具有明确的初始化、条件判断和迭代更新步骤,结构清晰,使用广泛。
while 循环:
while (条件表达式) {
// 循环语句
}
-
先判断条件,条件为真则执行循环体。
do-while 循环:
do {
// 循环语句
} while (条件表达式);
-
先执行一次循环体,然后再判断条件,至少会执行一次循环体。 -
☺☺☺如果有其他观点的小伙伴欢迎在评论区留言讨论,谢谢!☺☺☺
相关文章请参阅:
281

被折叠的 条评论
为什么被折叠?



