学习笔记:C++语句实现分支结构

简介: 学习笔记:C++语句实现分支结构

1. C++语句概述

在C++编程中,语句是程序的基本构成单元。语句按照顺序执行,可以实现程序的流程控制、变量赋值等功能。


1.1 程序的基本结构

一个完整的C++程序由多个语句组成,每个语句以分号";"结尾。程序的入口是main函数,其基本结构如下:

#include <iostream>
using namespace std;
int main() 
{
    // 语句1
    // 语句2
    // ...
    // 语句n
    return 0;
}

其中,#include 表示引用了输入输出流的库,using namespace std;表示使用了标准命名空间。程序从main函数开始执行,执行完所有语句后返回0。


1.2 C++中的语句

C++中常见的语句包括赋值语句、条件语句、循环语句等。赋值语句用于给变量赋值,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码。


2. if语句实现分支结构

2.1 问题的提出

在编写程序时,经常需要根据不同的条件执行不同的代码块。这时可以使用if语句实现分支结构。


2.2 if语句的基本结构

if语句的基本结构如下:

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

其中,条件为真时执行的代码块可以是一个语句或多个语句的块。


【例2-1】输入两个整数,输出其中较大值

#include <iostream>
using namespace std;
int main() 
{
    int a, b;
    cout << "请输入两个整数:" << endl;
    cin >> a >> b;
    if (a > b) 
    {
        cout << "较大值是:" << a << endl;
    }
    else 
    {
        cout << "较大值是:" << b << endl;
    }
    return 0;
}

在上述示例中,根据输入的两个整数a和b的大小关系,输出较大值。当a大于b时,执行if条件为真的代码块,否则执行else条件为真的代码块。


【例2-2】输入两个整数,输出其中较大值和较小值

#include <iostream>
using namespace std;
int main() 
{
    int a, b;
    cout << "请输入两个整数:" << endl;
    cin >> a >> b;
    if (a > b) 
    {
        cout << "较大值是:" << a << endl;
        cout << "较小值是:" << b << endl;
    }
    else 
    {
        cout << "较大值是:" << b << endl;
        cout << "较小值是:" << a << endl;
    }
    return 0;
}

在上述示例中,根据输入的两个整数a和b的大小关系,分别输出较大值和较小值。当a大于b时,执行if条件为真的代码块,否则执行else条件为真的代码块。


2.3 嵌套语句的使用

在if语句中,可以嵌套使用更多的if语句,以实现更复杂的分支结构。


【例2-3】输入任意三个整数a、b、c,输出其中最大的数

#include <iostream>
using namespace std;
int main() 
{
    int a, b, c;
    cout << "请输入三个整数:" << endl;
    cin >> a >> b >> c;
    if (a >= b) 
    {
        if (a >= c) 
        {
            cout << "最大值是:" << a << endl;
        }
        else 
        {
            cout << "最大值是:" << c << endl;
        }
    }
    else 
    {
        if (b >= c) 
        {
            cout << "最大值是:" << b << endl;
        }
        else 
        {
            cout << "最大值是:" << c << endl;
        }
    }
    return 0;
}

在上述示例中,根据输入的三个整数a、b、c的大小关系,输出最大值。通过嵌套的if语句,先比较a和b的大小,再比较结果与c的大小,从而找到最大值。


2.4 使用if语句实现多分支

除了使用嵌套语句,还可以使用多个if语句实现多分支结构。


【例2-4】输出成绩等级

#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 >= 70) 
    {
        cout << "成绩等级为:中等" << endl;
    }
    else if (score >= 60) 
    {
        cout << "成绩等级为:及格" << endl;
    }
    else 
    {
        cout << "成绩等级为:不及格" << endl;
    }
    return 0;
}

在上述示例中,根据输入的成绩score输出对应的等级。根据不同的成绩范围,使用多个if条件语句判断成绩等级。


2.5 综合实例

【例2-5】计算指定月份的天数

#include <iostream>
using namespace std;
int main() 
{
    int year, month;
    cout << "请输入年份和月份:" << endl;
    cin >> year >> month;
    int days;
    if (month == 2) 
    {
        // 判断闰年
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
            days = 29;
        }
        else 
        {
            days = 28;
        }
    }
    else if (month == 4 || month == 6 || month == 9 || month == 11) {
        days = 30;
    }
    else 
    {
        days = 31;
    }
    cout << year << "年" << month << "月有" << days << "天" << endl;
    return 0;
}

在上述示例中,根据输入的年份year和月份month计算该月的天数。根据月份的不同,使用if条件语句判断天数。


【例2-6】求一元二次方程的根

#include <iostream>
#include <cmath>
using namespace std;
int main() 
{
    double a, b, c;
    cout << "请依次输入一元二次方程的系数a、b、c:" << endl;
    cin >> a >> b >> c;
    double delta = b * b - 4 * a * c;
    if (delta > 0) 
    {
        cout << "方程有两个不同的实根:" << endl;
        double x1 = (-b + sqrt(delta)) / (2 * a);
        double x2 = (-b - sqrt(delta)) / (2 * a);
        cout << "x1 = " << x1 << endl;
        cout << "x2 = " << x2 << endl;
    }
    else if (delta == 0) 
    {
        cout << "方程有两个相等的实根:" << endl;
        double x = -b / (2 * a);
        cout << "x = " << x << endl;
    }
    else 
    {
        cout << "方程无实根" << endl;
    }
    return 0;
}

在上述示例中,根据输入的一元二次方程的系数a、b、c计算方程的根。根据判别式delta的不同,使用if条件语句判断根的情况。


3. switch语句实现多分支结构

3.1 问题的提出

在一些情况下,我们需要根据不同的取值选择不同的代码分支执行。这时可以使用switch语句实现。


3.2 switch语句的一般结构

switch语句的一般结构如下:

switch (表达式) 
{
    case 常量1:
        // 匹配常量1时执行的代码块
        break;
    case 常量2:
        // 匹配常量2时执行的代码块
        break;
    ...
    default:
        // 所有case都不匹配时执行的代码块
        break;
}

其中,表达式的值将与各个case后的常量进行比较,匹配时将执行对应的代码块。如果没有匹配的case,将执行default后的代码块。


【例3-1】用switch语句输出成绩的等级

#include <iostream>
using namespace std;
int main() 
{
    int score;
    cout << "请输入成绩:" << endl;
    cin >> score;
    switch (score / 10) 
    {
        case 10:
        case 9:
            cout << "成绩等级为:优秀" << endl;
            break;
        case 8:
            cout << "成绩等级为:良好" << endl;
            break;
        case 7:
            cout << "成绩等级为:中等" << endl;
            break;
        case 6:
            cout << "成绩等级为:及格" << endl;
            break;
        default:
            cout << "成绩等级为:不及格" << endl;
    }
    return 0;
}

在上述示例中,根据输入的成绩score输出对应的等级。根据成绩的不同,使用switch语句根据分数段进行匹配,并输出对应的等级。


以上是关于C++语句实现分支结构的学习笔记,包括if语句和switch语句的使用方法和示例。通过学习这些内容,可以掌握C++中实现分支结构的基本方法,灵活运用语句来达到不同的流程控制的目的。


相关文章
|
1月前
|
C语言 C++
C/C++ 自定义头文件,及头文件结构详解
还是从"stdio.h"说起,这是C语言中内置的标准库,也就是说,头文件很多时候其实就是一个“库”,类似于代码的仓库,也就是说将某些具有特定功能的常量、宏、函数等归为一个大类,然后放进这个“仓库”,就像stdio.h就是一个标准输入/输出的头文件
31 1
C4.
|
2月前
|
算法 程序员 C++
C++标准头文件结构
C++标准头文件结构
C4.
28 0
|
3月前
|
算法 API 计算机视觉
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
29 0
|
5天前
|
存储 算法 数据安全/隐私保护
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
7 0
|
17天前
|
C++
C++虚函数学习笔记
C++虚函数学习笔记
16 0
|
18天前
|
存储 搜索推荐 C++
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
|
25天前
|
机器学习/深度学习 存储 算法
基础算法学习笔记(C++)
基础算法学习笔记(C++)
56 0
|
25天前
|
存储 C++ 索引
C++的STL学习笔记
C++的STL学习笔记
55 0
|
1月前
|
程序员 C语言 C++
C++流程结构
C++流程结构
|
2月前
|
存储 程序员 C语言
【C/C++ 数据结构 】二维数组结构解析
【C/C++ 数据结构 】二维数组结构解析
44 0