一文详解C++的程序流程控制

一文详解C++的程序流程控制

程序流程控制是指程序中用来控制代码执行顺序和逻辑的语句,包括条件语句、循环语句以及跳转语句。本文将详细讲解C++中的程序流程控制语句及其使用方法。

条件语句

条件语句用于判断特定条件是否满足,并根据条件的真假执行不同的代码块。

if语句

if语句是最基本的条件语句。它的语法格式如下:

if (条件表达式)
{
    //条件表达式为真时执行的代码块
}

示例1:判断一个整数是否为正数

#include <iostream>
using namespace std;
int main()
{
    int n;
    cout << "请输入一个整数:" << endl;
    cin >> n;
    if (n > 0)
    {
        cout << "这是一个正数" << endl;
    }
    return 0;
}

if-else语句

if-else语句可以在条件为真时执行一个代码块,在条件为假时执行另一个代码块。它的语法格式如下:

if (条件表达式)
{
    //条件表达式为真时执行的代码块
}
else
{
    //条件表达式为假时执行的代码块
}

示例2:判断一个整数是否为偶数

#include <iostream>
using namespace std;
int main()
{
    int n;
    cout << "请输入一个整数:" << endl;
    cin >> n;
    if (n % 2 == 0)
    {
        cout << "这是一个偶数" << endl;
    }
    else
    {
        cout << "这是一个奇数" << endl;
    }
    return 0;
}

if-else if-else语句

if-else if-else语句可以判断多个条件,每个条件都有一个相应的代码块执行。它的语法格式如下:

if (条件表达式1)
{
    //条件表达式1为真时执行的代码块
}
else if (条件表达式2)
{
    //条件表达式2为真时执行的代码块
}
else
{
    //条件表达式1和条件表达式2均为假时执行的代码块
}

示例3:判断一个分数对应的等级

#include <iostream>
using namespace std;
int main()
{
    int score;
    cout << "请输入一个分数:" << endl;
    cin >> score;
    if (score >= 90)
    {
        cout << "优秀" << endl;
    }
    else if (score >= 80)
    {
        cout << "良好" << endl;
    }
    else if (score >= 60)
    {
        cout << "及格" << endl;
    }
    else
    {
        cout << "不及格" << endl;
    }
    return 0;
}

循环语句

循环语句用于重复执行一段代码,可以根据条件控制循环次数和循环结束条件。

while语句

while语句是最基本的循环语句。它的语法格式如下:

while (条件表达式)
{
    //满足条件表达式时重复执行的代码块
}

示例4:计算1~100的自然数之和

#include <iostream>
using namespace std;
int main()
{
    int i = 1, sum = 0;
    while (i <= 100)
    {
        sum += i;
        i++;
    }
    cout << "1~100的自然数之和为:" << sum << endl;
    return 0;
}

do-while语句

do-while语句先执行一次代码块,然后根据条件判断是否继续执行。它的语法格式如下:

do
{
    //重复执行的代码块
}
while (条件表达式);

示例5:循环输入数字,直到输入-1结束,并输出所有数字的平均值

#include <iostream>
using namespace std;
int main()
{
    int n, sum = 0, count = 0;
    do
    {
        cout << "请输入一个整数(输入-1结束):" << endl;
        cin >> n;
        if (n != -1)
        {
            sum += n;
            count++;
        }
    }
    while (n != -1);
    if (count > 0)
    {
        cout << "平均值为:" << (double)sum / count << endl;
    }
    return 0;
}

for语句

for语句可以根据条件控制循环次数。它的语法格式如下:

for (初始化表达式; 循环条件表达式; 循环后操作表达式)
{
    //重复执行的代码块
}

示例6:计算1~10的阶乘

#include <iostream>
using namespace std;
int main()
{
    int n = 1, fac = 1;
    for (int i = 1; i <= 10; i++)
    {
        fac *= i;
    }
    cout << "10的阶乘为:" << fac << endl;
    return 0;
}

跳转语句

跳转语句用于跳转到程序的指定位置。C++中有三种跳转语句:break、continue和goto。

break语句

break语句可以跳出循环语句,执行其后的语句。它的使用方法如下:

while (条件表达式)
{
    //循环执行的代码块
    if (跳出条件表达式)
    {
        break;
    }
}
//跳出循环语句后执行的代码

示例7:计算1~100之间的素数个数

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int count = 0;
    for (int i = 2; i <= 100; i++)
    {
        bool isPrime = true;
        for (int j = 2; j <= sqrt(i); j++)
        {
            if (i % j == 0)
            {
                isPrime = false;
                break;
            }
        }
        if (isPrime)
        {
            count++;
        }
    }
    cout << "1~100之间的素数个数为:" << count << endl;
    return 0;
}

continue语句

continue语句可以跳过循环中指定的代码块,直接执行下一次循环。它的使用方法如下:

while (条件表达式)
{
    if (跳过条件表达式)
    {
        continue;
    }
    //执行的代码块
}

示例8:输出100内的奇数

#include <iostream>
using namespace std;
int main()
{
    for (int i = 1; i <= 100; i++)
    {
        if (i % 2 == 0)
        {
            continue;
        }
        cout << i << " ";
    }
    return 0;
}

goto语句

goto语句可以跳转到程序中指定的位置。使用goto语句需要注意,过多使用会使程序的逻辑难以理解。

示例9:使用goto语句实现一个计算器

#include <iostream>
using namespace std;
int main()
{
    char op;
    int num1, num2;
    cout << "请输入一个操作符(+、-、*、/):" << endl;
    cin >> op;
    cout << "请输入两个整数:" << endl;
    cin >> num1 >> num2;
    switch (op)
    {
        case '+':
            cout << num1 + num2 << endl;
            break;
        case '-':
            cout << num1 - num2 << endl;
            break;
        case '*':
            cout << num1 * num2 << endl;
            break;
        case '/':
            if (num2 == 0)
            {
                cout << "除数不能为0" << endl;
                goto END;
            }
            cout << num1 / num2 << endl;
            break;
        default:
            cout << "操作符不正确" << endl;
            break;
    }
    END:
    return 0;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文详解C++的程序流程控制 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 详解c++良好的编程习惯与编程要点

    详解C++良好的编程习惯与编程要点 C++是一门广泛使用的编程语言,它的语法和特性非常丰富,同时也具有很高的灵活性。但是,如果我们没有遵循一些良好的编程习惯和编程要点,将会使我们的代码难以阅读和维护。下面我们将详细讲解C++良好的编程习惯与编程要点。 1. 命名规范 良好的命名规范是写出易读易懂的代码的关键。我们应该遵循以下命名规范: 变量名和函数名应该是有…

    C 2023年5月22日
    00
  • C语言全面细致讲解文件操作

    C语言全面细致讲解文件操作攻略 为了进行文件操作,C语言提供了丰富的库函数,其中包括了对文件的读写操作、文件指针的移动、文件属性的获取等操作。在本攻略中,我们将讲解C语言中的文件操作,涵盖文件的打开、读写、关闭等方面,以及常用的文件指针操作和文件属性获取。 文件的打开 在C语言中,文件的打开通常使用fopen()函数,具体的使用方法如下: FILE *fop…

    C 2023年5月23日
    00
  • 一文详解Node中的文件模块与核心模块

    一文详解Node中的文件模块与核心模块 模块的概念和分类 在 Node.js 中,所有的功能都是通过模块来实现的。模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。 Node.js 中有两种模块:核心模块(built-in core module)和文件模块(file module)。核心模块是 Node.js 自带的模块,文件模块是用…

    C 2023年5月23日
    00
  • win10系统出现0xc0000428错误的解决办法

    Win10系统出现0xc0000428错误的解决办法 问题描述 在使用Windows10系统时,有时会出现0xc0000428错误提示。该错误提示表示Windows无法验证计算机硬件或者启动配置文件,导致启动失败。这个问题可能会导致系统无法正常启动,对我们的工作和学习带来影响。因此,本文将详细介绍Win10系统出现0xc0000428错误的解决办法。 解决办…

    C 2023年5月24日
    00
  • RedHat linux 8.0下内核编译步骤和说明

    RedHat Linux 8.0下内核编译步骤和说明 前置条件 已安装RedHat Linux 8.0操作系统 具备基本的Linux命令行操作技巧 下载Linux内核源码包 步骤说明 步骤1:解压源码包 将下载的Linux内核源码包解压到任意位置,例如/home/username/kernel。 步骤2:配置内核 进入源码目录,使用以下命令进行配置: mak…

    C 2023年5月22日
    00
  • 基于C++中常见编译错误的总结详解

    基于C++中常见编译错误的总结详解 在C++编程过程中,经常会遇到各种编译错误。本文将对常见的编译错误进行总结,为大家提供一份参考。 1.语法错误 语法错误是编写C++程序时最常见的错误之一。当你使用了无效的语法或拼写错误时,编译器会抛出语法错误。 1.1 示例:语法错误 int main(){ couut << "Hello, Wor…

    C 2023年5月23日
    00
  • C语言 图文并茂详解程序编译过程

    C语言 图文并茂详解程序编译过程 编译器是将我们编写的源代码转化成执行文件的工具。在C语言中,利用编译器可以将代码编译成目标代码,并链接到可执行文件中。下面是程序编译的详细过程。 程序编译的各个阶段 1. 预处理阶段 预处理器会进行一些特定的替换和指令扩展,例如#include指令将头文件添加到源代码文件中,宏定义将对代码中使用宏的地方进行替换。预处理器会生…

    C 2023年5月23日
    00
  • Golang哈希算法实现配置文件的监控功能详解

    Golang哈希算法实现配置文件的监控功能详解 介绍 在开发中,经常需要读取配置文件来动态调整运行时参数。为了及时更新配置文件的修改,我们需要实现一个能够监控配置文件变化并自动加载的功能。本文介绍使用 Golang 哈希算法实现配置文件监控的方法。 哈希算法介绍 哈希算法是一种将任意长的消息压缩到某一固定长度的消息摘要的函数。摘要的意义在于保证数据的完整性,…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部