编程技术文章分享与教程

网站首页 > 技术文章 正文

C++中break、continue、goto、return在循环中的用法

hmc789 2024-11-27 14:50:10 技术文章 2 ℃


C++中,break、continue、goto、return语句都可以应用在 while、for 循环语句中,用于控制循环语句中的流程。

比如下面这段代码:

#include <iostream>
using namespace std;

int main()
{
    int i = 0;
    while (i < 2) {
        cout << "i: " << i << endl;
        for (int j = 0; j < 2; ++j) {
            cout << "  j: " << j << endl;
        }
        i++;
    }
}

运行结果为:

1、beak 的用法

break 用于多层嵌套的 while、for 循环语句时,可以跳出最接近break的循环语句。

#include <iostream>
using namespace std;

int main()
{
    int i = 0;
    while (i < 2) {
        cout << "i: " << i << endl;
        for (int j = 0; j < 2; ++j) {
            if (j > 0) {
                break;
            }
            cout << "  j: " << j << endl;
        }
        i++;
    }
}

运行结果为:

此外,break还用于switch语句中的case,以跳出当前switch语句。

2、continue 的用法

continue 用于多层嵌套的 while、for 循环语句时,用来忽略循环语句块内位于它后面的代码而继续开始一次新的循环。

#include <iostream>
using namespace std;

int main()
{
    int i = 0;
    while (i < 2) {
        cout << "i: " << i << endl;
        for (int j = 0; j < 2; ++j) {
            if (j == 0) {
                continue;
            }
            cout << "  j: " << j << endl;
        }
        i++;
    }
}

运行结果为:

3、goto 的用法

goto语句用于将控制转移到由标签标记的语句。

当多层 while、for 循环语句嵌套时, break语句只应用于最里层的语句,如果要穿越多个嵌套层,可以使用 goto语句。

#include <iostream>
using namespace std;

int main()
{
    int i = 0;
    while (i < 2) {
        cout << "i: " << i << endl;
        for (int j = 0; j < 2; ++j) {
            if (j == 0) {
                goto hello;
            }
            cout << "  j: " << j << endl;
        }
        i++;
    }
  
    hello: cout << "hello world!" << endl;
}

运行结果为:

goto 语句是一种无条件流程跳转语句,对于有多层嵌套的 while、for 循环语句,可以直接跳到最外层,但一般都不建议使用goto语句,因为它使得程序的控制流难以跟踪,使程序难以理解和修改。

4、return 的用法

return 可以直接退出函数,把控制返回函数的调用者。

如果函数没有返回类型,可以直接return,否则,return语句必须返回这个函数类型的值。

#include <iostream>
using namespace std;

int main()
{
    int i = 0;
    while (i < 2) {
        cout << "i: " << i << endl;
        for (int j = 0; j < 2; ++j) {
            if (j == 0) {
                return 0;
            }
            cout << "  j: " << j << endl;
        }
        i++;
    }
}

运行结果为:

标签列表
最新留言