学习笔记: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++中实现分支结构的基本方法,灵活运用语句来达到不同的流程控制的目的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌泡泡糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值