最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

那些年C++ 流程控制continue 语句

XAMPP相关 admin 55浏览 0评论

第十一章:C++ continue 语句

在此篇教程中,我们将借助示例程序来了解 continue 语句以及其与循环的工作流程。

在计算机编程中,continue 语句用于跳过循环的当前迭代,程序的控制权进入下一次迭代。

continue 语句的语法是:

continue;

在了解 continue 语句之前,请确保已掌握:


C++ continue语句的工作流程

dra000097

C++ for及while循环中使用continue语句的工作流程图

示例 1:for循环中使用continue

for 循环中, continue 跳过当前迭代并且控制流跳转到 update 表达式。

// 打印i值得程序

#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 5; i++) {
        // continue的条件
        if (i == 3) {
            continue;
        }

        cout << i << endl;
    }

    return 0;
}

输出:

1
2
4
5

在上面的程序中,使用了 for 循环来打印每次迭代中 i 的值。此处,注意代码:

if (i == 3) {
    continue;
}

该段代码意思为:

  • i等于3时,continue语句跳过当前迭代并开始下一次迭代
  • 然后,i变为4,并再次判断条件 condition
  • 因此,在接下来的两次迭代中打印 45

Note: continue 语句几乎都是与决策语句一起使用。


示例 2:while循环中使用continue

while 循环中,continue 跳过当前迭代,程序的控制流跳回到 while condition

// 仅计算50之前的正数的程序
// 如果用户输入负数,
// 从计算中跳过该数字

// 负数 -> 循环终止
// 50以上的数字 -> 跳过迭代

#include <iostream>
using namespace std;

int main() {
    int sum = 0;
    int number = 0;

    while (number >= 0) {
        // 累加所有的正数
        sum += number;

        // 接收用户的输入数字
        cout << "Enter a number: ";
        cin >> number;

        // continue的条件
        if (number > 50) {
            cout << "该数字大于50且不会被计算." << endl;
            number = 0;  // number的值再次变为0
            continue;
        }
    }

    // 显示sum求和结果
    cout << "The sum is " << sum << endl;

    return 0;
}

 

输出:

Enter a number: 12
Enter a number: 0
Enter a number: 2
Enter a number: 30
Enter a number: 50
Enter a number: 56
该数字大于50且不会被计算.
Enter a number: 5
Enter a number: -3
The sum is 99

在上面的程序中,请求用户输入一个数字。while 循环用于打印用户输入的正数的总和(只要输入的数字不大于 50的正数数字求和)

注意 continue 语句的使用:

 if (number > 50){
    continue;
}
  • 当用户输入一个大于 50 的数字时, continue 语句将跳过当前迭代。然后程序的控制流程转到while循环的 condition 。
  • 当用户输入一个小于 0 的数字时,循环终止。

Note: continue 语句与 do...while 循环的工作方式相同。


嵌套循环中使用 continue

continue 与嵌套循环一起使用时,它会跳过内部循环的当前迭代。例如:

// 在里面使用continue语句
// 嵌套循环

#include <iostream>
using namespace std;

int main() {
    int number;
    int sum = 0;

    // 嵌套循环

    // 第一次循环
    for (int i = 1; i <= 3; i++) {
        // 第二次循环
        for (int j = 1; j <= 3; j++) {
            if (j == 2) {
                continue;
            }
            cout << "i = " << i << ", j = " << j << endl;
        }
    }

    return 0;
}

输出:

i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3

在上面的程序中,当continue语句执行时,它会在内循环中跳过当前的迭代。并且程序的控制移动至内循环的更新表达式上。

因此,j = 2 的值永远不会显示在输出中。

Note: 区别:break 语句完全终止循环。但是,continue 语句仅跳过当前迭代。

 

程序算法实验室 zhangJA-Lab

转载请注明:XAMPP中文组官网 » 那些年C++ 流程控制continue 语句