10.9晚自习 循环结构

发布于 2024-10-09  980 次阅读


在C语言中,循环语句用于重复执行一段代码,直到满足特定条件。主要有三种类型的循环语句:for 循环、while 循环和 do...while 循环

下面先来看看for循环语句

for 循环用于确定循环次数。其基本语法如下:

for (初始化; 条件; 更新) {
    // 循环体
}

//其中,如果你的“初始化”已经在上文进行了,可以将其空着

#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("i = %d\n", i);
    }
    return 0;
}

示例分析

  1. 初始化int i = 0; —— 声明并初始化变量 i 为 0
  2. 条件i < 5; —— 当 i 小于 5 时,执行循环体//即第二空的条件就是是否执行循环体的闸门
  3. 更新i++ —— 每次循环结束后,i 自增 1//即第三空的代码就是每次循环结束后要干的事,但如果闸门关了,这个就不会再执行了,所以第二空成立才有第三空的事

首先,值得注意的是,你需要确保循环条件能够在适当的时候结束循环,避免陷入无限循环

同时,for 循环中定义的控制变量通常只在循环内部可见如果需要在循环外部使用它,应该在循环外部先定义,这个尤其重要

int i; // 在外部定义
for (i = 0; i < 5; i++) {
printf("%d\n", i);
}
printf("最后的 i 值: %d\n", i); // 这样就可以在for循环外部的代码访问到i

 使用 break 和 continue

break 可以用来提前结束循环,而 continue 用来跳过当前迭代,进入下一次循环。请谨慎使用,以确保代码逻辑清晰

for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数
}
printf("%d\n", i); // 只打印奇数
}

首先,for (int i = 0; i < 10; i++)将启动一个循环,从 0 到 9,每次迭代 i 增加 1

% 是取模运算符,i % 2 会返回 i 除以 2 的余数。如果余数为 0,说明 i 是偶数

这里先详细地讲讲continue

先来看看上面的代码,我要明确的是,continue 只在循环结构内有效。它可以出现在 forwhile 或 do-while 循环中,但在其他代码结构(如 ifswitch 等)中是无效的也即,continue只对循环结构主体有效,而与在循环体中的哪一种嵌套结构之中无关!

//所以,我感觉在这里循环语句大于条件语句

当执行到 continue 语句时,它会立即终止当前迭代,跳过后面的所有代码(在同一循环内的代码)。然后,控制流将继续到循环的下一次迭代

然后是循环中的break语句

如果在嵌套循环内部使用 break,它只会终止最近的那一层循环。换句话说,如果在一个循环结构中出现了break,break 只影响直接包含它的那一个循环

所以,如果在嵌套的循环中使用 break,它只会退出最内层的那个循环


在 C 语言中,while 循环同样用于在满足特定条件的情况下重复执行一段代码

while (condition) {
// 代码块
}

具体例子:

int main() {
int count = 0;
while (count < 5) {
printf("%d\n", count);
count++;
}
return 0;
}

在这个例子中,while 循环会不断执行,直到 count 小于 5。在每次循环中,打印 count 的值,并将其递增。循环在 count 达到 5 时结束

使用 break 终止循环:

在 C 语言中,也可以使用 break 语句在循环中提前退出:

#include <stdio.h>

int main() {
int count = 0; // 初始化计数器

while (1) { // 创建一个无限循环
printf("%d\n", count); // 打印当前的 count 值
count++; // 递增 count 的值

// 当 count 达到 5 时,退出循环
if (count >= 5) {
break; // 退出循环
}
}

return 0; // 返回 0,表示程序成功执行完毕
}

使用continue跳过剩余循环

continue 用于跳过当前循环中的剩余代码,直接进入下一次循环的开始。所以,请牢记C语言是基于顺序结构执行代码的!!!



再来谈谈for语句和while语句的区别

  • while 循环:适用于当循环次数不确定时,例如等待某个条件满足使用时,必须在循环体内自行控制循环变量的更新
  • for 循环:适用于循环次数已知的情况。例如,遍历数组或执行固定次数的重复操作

  • for 循环:由于所有控制逻辑集中在一行,通常更简洁且易于阅读,尤其是对于有明确次数的循
  • while 循环:可能更适合描述不确定次数的逻辑,阅读时需要关注条件和变量更新的位置


还有一个循环语句,do while循环

do while 循环是 C 语言中的另一种循环结构,它与 while 循环的主要区别在于循环体一定会执行一次(至少),因为条件判断在循环体执行之后进行

do {
// 代码块
} while (condition);
  1. 至少执行一次:无论条件是否成立,do while 循环的代码块在条件判断之前执行,因此确保至少执行一次
  2. 条件检查条件在代码块执行后进行判断,因此如果条件不满足,循环将终止

当你需要至少执行一次输入操作并根据输入判断是否继续时do while 循环非常有用。例如,验证用户输入的有效性时

届ける言葉を今は育ててる
最后更新于 2024-11-05