【C++】for,while,continue,break

本文深入解析了循环控制结构,包括for、while、do-while循环的语法形式、规则及特殊情况,详细介绍了continue和break语句的功能,并通过实例展示了如何使用这些控制结构来实现特定的编程任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

for

形式

规则

特殊情况

continue

break

while

形式

规则

do while

形式

规则


for

形式

for (expr1; expr2; expr3)

    statement;

规则

(1)初始化,执行expr1(只执行一次);

(2)条件判断:如果expr2为真,则执行(3),否则退出;

(3)执行statement:循环体;

(4)执行expr3;

(5)回到(2),进行下一轮。

#include "stdio.h"

int main()
{
    int a[100];
    for(int i=0; i<100; i++)
    {
        a[i] = i;
        printf("%d \n", a[i]);
    }


    return 0;
}

结果为:

特殊情况

第一种情况:

for(int i = 0; ; i++) //判断条件为空,表示一直满足条件
{
    if(i>=100) break;//设置退出条件
    a[i] = i+1;
}

第二种情况:

for(int i = 0; i<100; )
{
    a[i] = i+1;
    i++;
}

continue

跳出本次循环,直接跳到下一次循环操作。

下面程序功能:打印10以内的奇数。

#include "stdio.h"

int main()
{
    int a[100];
    for(int i=0; i<10; i++)
    {
        a[i] = i;
        if(i%2 == 0)
        {
            continue;
        }
        printf("%d \n", a[i]);

    }


    return 0;
}

break

跳出该循环,执行该循环之后的代码。

下面程序功能:大于2后直接跳出循环。

#include "stdio.h"

int main()
{
    int a[100];
    for(int i=0; i<10; i++)
    {
        if(i > 2)
        {
            break;
        }
        a[i] = i;
        printf("%d \n", a[i]);
    }

    printf("I am \"break\".");

    return 0;
}

结果为

while

形式

while(expr)
{
    statement;
}

规则

(1)判断:expr为假时,退出循环;否则执行(2);

(2)执行语句statement(循环体);

(3)回到(1),进行下一轮。

程序功能:打印1到100的数。

#include "stdio.h"

int main()
{
    char buf[100];
    int i = 0;
    while(i < 100)
    {
        buf[i] = i + 1;
        printf("%d \n", buf[i]);
        i++;
    }

    return 0;
}

do while

形式

do
{
    statement;
}while(expr);

规则

(1)执行do里面的循环体;

(2)判断expr是否为真,为真是继续下一轮,为假时跳出该循环体。

### C++中`continue`和`break`语句的区别 #### `break`语句的功能 `break`语句用于立即退出最内层的选择结构(如`switch`)或循环结构(如`for`、`while`、`do-while`),使程序继续执行紧跟在该结构之后的代码。这意味着一旦遇到`break`,不仅会终止当前迭代,还会完全结束整个循环体的执行[^2]。 例如,在多层嵌套的情况下,如果在一个内部循环使用了`break`,则只会中断这个特定层次上的循环,而不是所有的外层循环[^3]。 ```cpp #include <iostream> using namespace std; int main() { for (int i = 0; i < 10; ++i) { for (int j = 0; j < 10; ++j) { if (j == 5) break; cout << "* "; } cout << endl; } } ``` 这段代码展示了如何利用`break`来提前结束内层循环,从而减少不必要的计算次数。 #### `continue`语句的作用 相比之下,`continue`仅影响当前这一次的循环迭代,它会让程序跳过本次循环剩余未被执行的部分,并直接进入下一轮循环测试条件。这通常适用于想要过滤掉不符合预期的数据项而不必终止整个循环的情况[^4]。 下面是一个简单的例子说明了这一点: ```cpp #include <iostream> using namespace std; int main() { int i = 0; do { i++; if (i % 2 == 0) continue; cout << "i = " << i << endl; } while (i < 10); return 0; } ``` 此示例通过`continue`忽略了所有偶数值,只打印奇数的结果。 #### 使用场景对比 - **`break`**: 当需要基于某个条件立刻停止遍历集合或者处理逻辑时非常有用;特别是在找到目标对象后不再需要进一步查找的情形下。 - **`continue`**: 更适合于那些希望排除某些特殊情况但仍需完成其他正常操作的应用场合。比如筛选数据集中的有效记录,或是实现更复杂的业务规则验证机制。 综上所述,虽然两者都能改变正常的流程走向,但在具体应用上有明显差异,开发者应根据实际需求合理选用这两种控制流指令之一[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值