27,506
社区成员
发帖
与我相关
我的任务
分享goto 和 continue 语句计数控制的循环是通过计数器变量来控制循环执行次数的。常见的例子是 for 循环,适用于明确知道循环次数的场景。
for (表达式1; 表达式2; 表达式3) {
语句;
}
💡 三个表达式之间必须使用分号分隔,初学者容易犯错。
使用 for 循环可以将6改为更大的数字,减少代码重复。必须确保在循环开始前对累加变量进行初始化。
while 循环:先判断条件再执行循环。do-while 循环:至少执行一次,然后再判断条件。while 形式
int x = 1, d = 1;
while (d < 10) {
x = (x + 1) * 2;
d++;
}
do-while 形式
int x = 1, d = 1;
do {
x = (x + 1) * 2;
d++;
} while (d < 10);
💡 区别:
do-while会至少执行一次循环,而while在初始条件不满足时一次都不会执行。
标记控制循环通过一个标志变量(如布尔型变量)来控制循环的继续或中断。常见的例子是 while 和 do-while 循环,适用于不确定循环次数的场景,如用户输入直到满足某个条件。
do-while 循环
int sum = 0, m;
do {
printf("Input m: ");
scanf("%d", &m);
sum += m;
printf("sum = %d\n", sum);
} while (m != 0);
💡 特点:最少要读取一次用户输入。
代码实现
int magic, guess, counter = 0;
magic = rand() % 100 + 1;
do {
printf("Please guess a magic number: ");
scanf("%d", &guess);
counter++;
if (guess > magic) printf("Wrong! Too big!\n");
else if (guess < magic) printf("Wrong! Too small!\n");
else printf("Right!\n");
} while (guess != magic);
嵌套循环是指一个循环嵌套在另一个循环内,常用于多层次迭代问题,例如二维数组的遍历或打印乘法表。
代码实现
int m, n;
for (m = 1; m <= 9; m++) {
for (n = 1; n <= 9; n++) {
printf("%4d", m * n);
}
printf("\n");
}
int x;
for (x = 1; x < 5000; x++) {
if (x % 5 == 1 && x % 6 == 5 && x % 7 == 4 && x % 11 == 10) {
printf("x = %d\n", x);
}
}
goto 和 continue 语句 🔄goto 语句用于将程序跳转到指定标签位置。这种方式可能会使代码难以阅读和维护,因此不建议频繁使用。
代码示例 - 使用 goto 跳转到标签
#include <stdio.h>
int main() {
int i = 0;
loop:
if (i < 5) {
printf("i = %d\n", i);
i++;
goto loop; // 跳转到标签 loop
}
return 0;
}
💡 注意:频繁使用
goto可能会导致“面条式代码”,难以维护。
continue 语句用于跳过当前循环的剩余部分,直接进入下一次循环的判断和执行。
代码示例 - 使用 continue 语句
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 如果 i 是偶数,则跳过本次循环
}
printf("i = %d\n", i);
}
return 0;
}
💡
continue常用于跳过某些特定条件下的循环内容,而不终止整个循环。
for。while 或 do-while。goto 用于程序跳转,但应谨慎使用;continue 用于跳过当前循环中的剩余部分。🎯 在编程中灵活运用这些循环语句和控制语句,能有效提高代码的可读性和运行效率。