C 语言 - Break 和 Continue
Break
你已经在前面的章节中见过 break 语句了。它被用于“跳出”一个 switch 语句。
break 语句同样可以被用于跳出循环。
这个例子会在 i 等于 4 的时候跳出 for 循环:
实例
int i;
for (i = 0; i < 10; i++) {
if (i == 4) {
break;
}
printf("%d\n", i);
}
Continue
continue 语句用于跳过循环中的一次迭代,如果某个特定的条件被满足了,然后它将继续下一次迭代。
这个例子跳过了值为 4 的情况:
实例
int i;
for (i = 0; i < 10; i++) {
if (i == 4) {
continue;
}
printf("%d\n", i);
}
请记住:
break= 完全停止循环。continue= 跳过本轮循环,但继续循环。
结合使用 Break 和 Continue
您也可以结合使用 break 和 continue。
此例跳过打印 2,并在 4 处停止循环:
实例
int i;
for (i = 0; i < 6; i++) {
if (i == 2) {
continue;
}
if (i == 4) {
break;
}
printf("%d\n", i);
}
在 While 循环中的 Break 和 Continue
你同样可以在 while 循环中使用 break 和 continue:
Break 实例
int i = 0;
while (i < 10) {
if (i == 4) {
break;
}
printf("%d\n", i);
i++;
}
Continue 实例
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
printf("%d\n", i);
i++;
}
实际应用示例
假设处理一个数字列表,您想要跳过负数值,但如果找到零则完全停止:
实例
int myNumbers[] = {3, -1, 7, 0, 9};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;
for (i = 0; i < length; i++) {
if (myNumbers[i] < 0) {
continue; // 跳过负数
}
if (myNumbers[i] == 0) {
break; // 找到零时停止循环
}
printf("%d\n", myNumbers[i]);
}
注意:如果您不完全理解上面的示例,不用担心。它使用一个数组(int numbers[] = {3, -1, 7, 0, 9};)来存储数字,您将在下一章中学习更多关于数组的知识。