一文详解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 2023年5月23日
    00
  • C语言中的正则表达式使用示例详解

    C语言中的正则表达式使用示例详解 正则表达式是一种通用的文本匹配模式,可以在C语言中用来进行字符串的匹配和处理。C语言提供了regex库来支持正则表达式的使用。接下来,将为您详细讲解C语言中正则表达式的使用,包括正则表达式语法、函数调用和示例说明。 正则表达式语法 正则表达式语法是一组规则,用于描述文本模式匹配的方式。在C语言中,正则表达式的语法由一些特殊字…

    C 2023年5月23日
    00
  • 学习C语言的第一天

    今天学习C语言学习了三个部分: 第一个部分是软件环境的搭建,如何搭建一个项目 使用工具:visual studio 2010 搭建过程:新建项目、配置设置(主要是解决运行后一闪而过的问题) 第二部分是编写一个简单的C语言程序代码 #include<stdio.h> //引入头文件 io指的是输入与输出 int main(){ //不可少的入口函数…

    C语言 2023年4月18日
    00
  • QT中如何读写ini配置文件

    QT中可以很方便地读写ini格式的配置文件,下面是读写ini配置文件的完整攻略: 1. 先创建QSettings对象 QSettings对象是QT中读写配置文件的对象,调用它的相关方法可以轻松完成对配置文件的读写操作。需要调用QSettings对象的构造函数来创建对象,构造函数的参数有两个:文件名和格式。 例如,在mainwindow.cpp中创建一个叫做m…

    C 2023年5月23日
    00
  • 详解QListWidget如何实现自定义Item效果

    下面是详细讲解“详解QListWidget如何实现自定义Item效果”的完整攻略。 1. QListWidget简介 QListWidget是QT中常用的一个列表控件,它能够方便地显示列表数据,并且还支持很多常用的操作,比如单选、多选、拖拽等。在QListWidget中,默认的Item是由QListWidgetItem类提供的,它能够显示一些基本的文本、图标…

    C 2023年5月23日
    00
  • 基于c++中的默认拷贝函数的使用详解

    基于C++中的默认拷贝函数的使用详解 在C++中,当我们定义了一个类,并对其进行实例化时,如果没有手动定义拷贝构造函数或拷贝赋值运算符,那么编译器会自动为该类提供默认的拷贝构造函数和拷贝赋值运算符。本文将详细讲解这两种默认拷贝函数的使用。 默认拷贝函数的定义 默认拷贝函数的定义如下: class MyClass { public: MyClass(const…

    C 2023年5月22日
    00
  • C程序 打印半直角号码金字塔图案

    C程序 打印半直角号码金字塔图案 使用攻略 程序实现功能 本程序是用C语言实现打印半直角号码金字塔图案,可根据输入的行数打印出不同大小的金字塔图案,程序较为简单易懂,适合初学者学习练手。 使用攻略 本程序主要使用的控制语句是循环,包括for循环和while循环,同时也运用了条件判断语句和输出语句。以下是本程序代码的详细解析: 用户输入要打印的金字塔的行数(c…

    C 2023年5月9日
    00
  • 阿里面试必会的20道C++面试题与参考答案解析

    当提到C++面试题时,涉及到的题目类型与难度可能非常广泛。针对阿里面试常见的C++面试题,以下提供了20道必会的题目及相应的参考答案解析。 1. 求100以内所有奇数的和,使用while循环实现 #include <iostream> using namespace std; int main() { int sum = 0; int i = 1…

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