程序运行结构

2023-11-06

C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构

顺序结构:程序按顺序执行,不发生跳转

选择结构:依据条件是否满足,有选择的执行相应功能

循环结构:依据条件是否满足,循环多次执行某段代码

选择结构

 if语句

作用:执行满足条件的语句

if语句的三种形式

单行格式if语句,多行格式if语句,多条件的if语句

1. 单行格式if语句:`if(条件){ 条件满足执行的语句 }`

2. 多行格式if语句:`if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };`

3. 多条件的if语句:`if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句}`

   示例:

int main() {

    //选择结构-多行if语句(单行的话把else去掉就行)

    //输入一个分数,如果分数大于600分,视为考上一本大学,并在屏幕上打印

    int score = 0;

    cout << "请输入一个分数:" << endl;

    cin >> score;

    cout << "您输入的分数为: " << score << endl;

    //if语句

    //注意事项,在if判断语句后面,不要加分号

    if (score > 600)

    {

        cout << "我考上了一本大学!!!" << endl;

    }

    else

    {

        cout << "我没考上一本大学" << endl;

    }

    system("pause");

    return 0;

}
int main() {
        //多条件的if语句

       int score = 0;

       cout << "请输入考试分数:" << endl;

       cin >> score;

       if (score > 600)

       {

              cout << "我考上了一本大学" << endl;

       }

       else if (score > 500)

       {

              cout << "我考上了二本大学" << endl;

       }

       else if (score > 400)

       {

              cout << "我考上了三本大学" << endl;

       }

       else

       {

              cout << "我未考上本科" << endl;

       }

       system("pause");

       return 0;

}

三目运算符

作用: 通过三目运算符实现简单的判断

语法:`表达式1 ? 表达式2 :表达式3`

解释:

如果表达式1的值为真,执行表达式2,并返回表达式2的结果;

如果表达式1的值为假,执行表达式3,并返回表达式3的结果。

int main() {

       int a = 10;

       int b = 20;

       int c = 0;

       c = a > b ? a : b;

       cout << "c = " << c << endl;

       //C++中三目运算符返回的是变量,可以继续赋值

       (a > b ? a : b) = 100;

       cout << "a = " << a << endl;

       cout << "b = " << b << endl;

       cout << "c = " << c << endl;

       system("pause");

       return 0;

}

总结:和if语句比较,三目运算符优点是短小整洁,缺点是如果用嵌套,结构不清晰

switch语句

作用:执行多条件分支语句

语法:

switch(表达式)

{



    case 结果1:执行语句;break;

    case 结果2:执行语句;break;

    ...

    default:执行语句;break;

}


注意1:switch语句中表达式类型只能是整型或者字符型

注意2:case里如果没有break,那么程序会一直向下执行

总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间

循环结构

while循环语句

作用:满足循环条件,执行循环语句

语法:` while(循环条件){ 循环语句 }`

解释:只要循环条件的结果为真,就执行循环语句

int main() {

       int num = 0;

       while (num < 10)//当满足条件时会一直循环

       {

              cout << "num = " << num << endl;

              num++;

       }

       system("pause");

       return 0;

}

do...while循环语句

作用:满足循环条件,执行循环语句

语法: `do{ 循环语句 } while(循环条件);`

注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件

int main() {

       int num = 0;

       do

       {

              cout << num << endl;

              num++;

       } while (num < 10);

       system("pause");

       return 0;

}

总结:与while循环区别在于,do...while先执行一次循环语句,再判断循环条件

for循环语句

作用: 满足循环条件,执行循环语句

语法:` for(起始表达式;条件表达式;末尾循环体) { 循环语句; }`

注意:for循环中的表达式,要用分号进行分隔

int main() {

       for (int i = 0; i < 10; i++)

       {

              cout << i << endl;

       }

       system("pause");

       return 0;

}

总结:while , do...while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用

嵌套循环

作用:在循环体中再嵌套一层循环

int main() {

       //外层循环执行1次,内层循环执行1轮

       for (int i = 0; i < 10; i++)

       {

              for (int j = 0; j < 10; j++)

              {

                     cout << "*" << " ";

              }

              cout << endl;

       }

       system("pause");

       return 0;

}

跳转语句

break语句

作用: 用于跳出选择结构或者循环结构

break使用的时机:

出现在switch条件语句中,作用是终止case并跳出switch

出现在循环语句中,作用是跳出当前的循环语句

出现在嵌套循环中,跳出最近的内层循环语句

continue语句

作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

int main() {

       for (int i = 0; i < 100; i++)

       {

              if (i % 2 == 0)

              {

                     continue;//当i可以整除2时返回for循环

              }

              cout << i << endl;//输出的i均为奇数

       }

       system("pause");

       return 0;

}

注意:continue并没有使整个循环终止,而break会跳出循环

goto语句

作用:可以无条件跳转语句

语法: `goto 标记;`解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置

int main() {

       cout << "1" << endl;

       goto FLAG;

       cout << "2" << endl;

       cout << "3" << endl;

       cout << "4" << endl;

FLAG:

       cout << "5" << endl;

       system("pause");

       return 0;

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序运行结构 的相关文章

随机推荐

  • 教你解决浏览器被360劫持篡改主页的麻烦

    前言 相信很多的小伙伴都遇到一个问题 就是好端端的 打开自己的edge或者Chrome 突然发现自己的主页变成了这样 下图 不得不说 这个看得人真的不适 晕 相信大部分人还是喜欢简洁的 而且主要的是 自己的浏览器被可恶的360给篡改了 真是
  • Torch 1.9.1 DDP 并行优化与多模块调用问题

    DDP 基础实现 由于 DataParallel DP 采取的是多线程并行 出于其特性 会造成通信瓶颈 GIL 限制 因此更高效的方式是使用 DistributedDataParallel 实现更高效的 GPU 使用 DDP 相关基础实现参
  • docker mysql config_Docker部署MySQL8

    docker exec it mysql8 bash root 5a0866b3cd6c mysql uroot p Enter password Welcome to the MySQL monitor Commands end with
  • QT 仅设置QFrame样式,不影响QFrame下其他控件样式

    记录项目中需求 仅需要设置QFrame边框样式 而不影响QFrame下其他控件样式 QT设计师中页面样式简图 treeMenu QFrame titleName QLabel titleNameEdit QLineEdit 设置方法 选中Q
  • ubuntu配置nfs踩过的坑

    关于nfs在ubuntu的配置 网上有很多 基本都可以用 可以随意参考 本文只给出关于使用nfs常见的bug进行排故 问题一 mount nfs requested NFS version or transport protocol is
  • dotnet build Itwas not possible to find any installed .NET Core SDKs Did you mean to run .

    1 在CentOS7中编译aspnetcore项目时出现了下面的错误 意思是没有安装 NET Core SDK root iZwz90r5hel5o570f21k91Z AspNetCoreDocker dotnet build AspNe
  • 数据库学习一站式入门资料(纯干货)

    本文涉及的所有内容仅供学习使用 如有侵权 请联系本人删除 一 数据库管理系统安装 这里提供三种方式安装 1 华为的OpenGauss系统 支持国产 这里提供在华为云服务器上配置的方法 由于是装在云端的 对本地的机器没什么要求 基本可以上浏览
  • 衡器---电压信号与电压

    一 灵敏度 激励与检测分度 灵敏度 LV 激励 JV 总信号电压变化量 LVJL 按照3000分度数 每分度电压为 LVJV 3000 例 灵敏度 2 0mV V 激励 5V 每个检定分度电压是 2 0mV 5V 3000 3 3uv 检测
  • Vue2学习第二十篇:Vue中的插件

    功能是用于增强Vue 就是把一些定义全局的功能都放在里面整合起来 到时候这些功能都能在全局使用 本质上就是包含install方法的一个对象 install的第一个参数就是Vue 第二个以后的参数就是插件使用者传递的参数 使用步骤如下 第一步
  • 几秒前,几分钟前,几小时前,几天前,几月前,几年前的java实现

    在代码开发的时候 特别是那种论坛啊什么的要返回 几秒前 几分钟前 几小时前 几天前 几月前 几年前 这样的时间格式 服务端那边只肯返回yyyy MM dd HH mm ss的格式 没办法 只能客户端加个转换了 代码如下 public cla
  • 目标检测遮挡问题及解决方案汇总

    部分内容来自 目标检测之小目标检测和遮挡问题 AndyJ的学习之旅 CSDN博客 遮挡目标检测 有遮挡的目标检测 Repulsion Loss Detecting Pedestrians in a Crowd CVPR2018 遮挡情况 目
  • Logistic回归——银行违约情况分析

    文章目录 一 Logistic回归原理 1 Sigmoid函数作用 2 用梯度下降法求解参数 二 利用Logistic回归分类 1 数据预处理 2 利用梯度上升计算回归系数 3 训练和验证 总结 一 Logistic回归原理 1 Sigmo
  • Linux命令行解密

    本章节将要讲解的命令 命令 命令 用途 type 显示命令类型 which 显示可执行文件的位置 help 获取Shell内建命令的帮助信息 man 显示命令的手册页 info 显示命令的info条目 alias 创建自己的命令 什么是命令
  • 【maven】No plugin found for prefix ‘install‘ in the current project

    1 场景1 1 1 概述 在安装jar文件到本地仓库时有时会遇到这样的问题 解决方法 下载 wagon http lightweight 2 2 jar 位置 https repo maven apache org maven2 org a
  • Unity设计模式之工厂模式

    一 什么是工厂模式 工厂模式是一种创建型设计模式 它提供了一种封装对象创建的方式 将对象的创建过程与使用过程分离 使得代码更加灵活 可扩展和可维护 在Unity中 工厂模式常用于创建和管理游戏对象 对啦 这里有个游戏开发交流小组里面聚集了一
  • MySQL存储结构

    MySQL体系结构 1 网络接入层 提供了应用程序接入MySQL服务的接口 客户端与服务端建立连接 客户端发送SQL到服务端 2 服务层 管理工具和服务 系统管理和控制工具 例如备份恢复 Mysql复制 集群等 连接池 主要负责连接管理 授
  • 客户合并修改需求 @熊哥

    1 客户信息确认列表 如果是 车主信息确认列表 和 车主信息查询列表 调用的标准客户修改功能 保存客户档案时 不校验客户信息重复规则 2 客户信息确认列表 客户信息确认列表 修改为 车主信息确认列表 客户信息合并 修改为 车主信息合并列表
  • Moviepy时间变换time_mirror再遇‘OSError: MoviePy error: failed to read the first frame of video file‘解决示例代码

    老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 在 https blog csdn net LaoYuanPython article details 106478711 moviep
  • leetcode63. 不同路径 II

    https leetcode cn com problems unique paths ii 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在
  • 程序运行结构

    C 支持最基本的三种程序运行结构 顺序结构 选择结构 循环结构 顺序结构 程序按顺序执行 不发生跳转 选择结构 依据条件是否满足 有选择的执行相应功能 循环结构 依据条件是否满足 循环多次执行某段代码 选择结构 if语句 作用 执行满足条件