C语言中continue,break的用法并举例

在C语言中,continuebreak是两个常用的控制流语句,它们主要用于改变循环的执行流程。

  1. continue语句

continue语句用于跳过当前循环的剩余部分,并立即开始下一次迭代。它通常用于在循环内部遇到某些条件时,避免执行剩余的循环体代码,并直接开始下一次迭代。

示例:

c复制代码
#include <stdio.h>int main() {    int i;    for(i = 0; i < 10; i++) {        if(i % 2 == 0) { // 如果i是偶数            continue;    // 跳过当前循环的剩余部分        }        printf("%d ", i); // 只打印奇数    }    return 0;}

输出:

复制代码
1 3 5 7 9

在这个例子中,当i是偶数时,continue语句会跳过printf语句,直接开始下一次循环迭代。因此,只有奇数会被打印出来。

2. break语句

break语句用于立即终止当前循环(或switch语句),并跳出循环体。当break语句执行后,控制流将转移到循环之后的第一个语句。

示例:

c复制代码
#include <stdio.h>int main() {    int i;    for(i = 0; i < 10; i++) {        if(i == 5) { // 如果i等于5            break;   // 终止循环        }        printf("%d ", i); // 打印i的值,但当i等于5时停止    }    return 0;}

输出:

复制代码
0 1 2 3 4

在这个例子中,当i等于5时,break语句会终止循环,因此只有0到4(包括4)会被打印出来。

注意:continuebreak语句只能用在循环体(如forwhiledo-while)或switch语句中。在其他地方使用会导致编译错误。

在复合循环(即嵌套循环)中使用continuebreak语句时,它们的行为会稍微复杂一些,因为你需要考虑它们对哪个循环的影响。

continue 在复合循环中的用法

在嵌套循环中,continue语句只会影响它所在的那一层循环。它会使当前迭代的剩余部分被跳过,并立即开始该层循环的下一次迭代。

示例:

c复制代码
#include <stdio.h>int main() {    int i, j;    for (i = 0; i < 3; i++) {        for (j = 0; j < 5; j++) {            if (j % 2 == 0) { // 如果j是偶数                continue;      // 跳过当前内层循环的剩余部分            }            printf("(%d, %d) ", i, j);        }        printf("\\n");    }    return 0;}

输出:

复制代码
(0, 1) (0, 3)(1, 1) (1, 3)(2, 1) (2, 3)

在这个例子中,continue语句只影响内层循环(由j控制的循环),使得只有当j是奇数时,才会打印(i, j)的值。

break 在复合循环中的用法

在嵌套循环中,break语句默认只会终止它所在的那一层循环。如果你想要终止所有的嵌套循环,你需要使用额外的逻辑(如设置标志变量)或使用其他控制结构(如goto,但通常不推荐使用goto)。

但是,如果你只是想要在最内层循环中使用break来终止该层循环,那么它的行为很简单。

示例:

c复制代码
#include <stdio.h>int main() {    int i, j;    for (i = 0; i < 3; i++) {        for (j = 0; j < 5; j++) {            if (j == 2) { // 如果j等于2                break;     // 终止内层循环            }            printf("(%d, %d) ", i, j);        }        if (j == 2) { // 如果内层循环因为j==2而终止            break;     // 也可以选择在这里终止外层循环        }        printf("\\n");    }    return 0;}

输出:

复制代码
(0, 0) (0, 1)

在这个例子中,当j等于2时,内层循环会被终止,但外层循环会继续。然而,由于我们在内层循环之后检查了j的值,并使用了另一个break语句(这是可选的),所以外层循环也被终止了。如果你去掉这个额外的break语句,外层循环会继续执行,但内层循环将不再执行(因为j的值已经超过了内层循环的范围)。

注意:在多层嵌套循环中,通常建议避免使用break来终止外层循环,除非你有明确的理由这样做,因为这可能会使代码更难理解和维护。在这种情况下,使用标志变量或其他控制结构可能是一个更好的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值