三、基本流程控制结构

3.1结构化程序设计

基本控制结构:

  • 顺序结构
  • 选择结构
  • 循环结构

 C++语句:

  • 说明语句
  • 控制语句
  • 函数调用语句
  • 表达式语句
  • 空语句
  • 复合语句

 3.2选择结构语句

if语句:

(1)单选条件语句

if(表达式) 语句
if(x>y)  cout<<x<<'\n';

(2)二选一条件语句

if(表达式) 语句1
esle       语句2
if(x>y)  cout<<x<<'\n';
else     cout<<y<<endl;

(3)多选一条件语句格式

if(表达式1)           语句1else if(表达式2)   语句2......       ......else if(表达式n)  语句nelse             语句m

(4)if内嵌语句

内嵌语句是复合语句,一定用"{}"括起来。

条件运算符“?”

表达式1?表达式2: 表达式3

max=a>b?a:b;
//若a>b为真,max=a;否则max=b
max=(a>b)?a:b;max=a>b?a:(b+1);
max=a>b?a:b+1;//二者等效

表达式的结合方向为“自右至左”:

a>b?a:c>d?c:d;
//相当于
a>b?a:(c>d?c:d);

条件与算符的三个表达式类型不同,此时条件表达式取转换级别较高的类型

cout<<(3>2?'a':20);
//输出为97而不是a,表达式3为整型,将字符‘a’转换

switch语句

又称开关语句,是一种多分支选择语句

switch (表达式) {case 常量表达式1: 语句1;case 常量表达式2: 语句2;case 常量表达式3: 语句3;......case 常量表达式n: 语句n;default:  语句n+1;
}

switch后的表达式只能是整型或字符型

各常量表达式只能由常量组成,其值也只能是整型或字符型

default子句可以省略

3.3循环结构语句

while语句

while语句实现“当型”循环,格式如下:

while(表达式) 语句

先判断循环条件后执行循环体。

//计算s=1+1/3+1/5+1/7+......+1/99
#include<iostream>
using namespace std;
int main(){float s=0;int   i=1;float t=0;while(i<100) {t=1.0/i;s+=t;i=i+2;}cout<<s<<'\n';return 0;
}

do-while语句

do

  循环体语句

while(表达式);

do-while语句while后面的;必不可少

//迭代法求x=√a的近似值,公式:Xn+1=1/2(Xn+a/Xn),X0=a或a/2,两次求出的x的差绝对值小于10^-5
#include<iostream>
#include<cmath>
using namespace std;
int main(){float a;float x0,x1;cout<<"请输入a的值\n";cin>>a;x0=a;do {x0=x1;x1==1/2(x0+a/x0);}while(fabs(x1-x0)>1e-5);return 0;
}

for语句

格式:

for(表达式1;表达式2;表达式3) 循环体语句

执行过程如下:

 for循环三个表达式的功能:

for(循环变量赋初值;循环条件;循环变量增量)  循环体语句

三个表达式都可以省缺,但“;”不能省略

3.4控制执行顺序的语句

break语句

使用格式:break;

break语句只能用在switch语句和循环语句中

  • 用与break语句中,使程序跳出switch语句去执行switch以后的语句
  • 用于循环语句中,使程序终止循环,不再进行循环条件的判断,直接跳出循环体,执行循环后面的语句

          

//输入三个整数,求三个整数的最小公倍数
#include<iostream>
using namespace std;
int main() {int a,b,c,x;cout<<"请输入三个整数:\n";cin>>a>>b>>c;for(x=a;x<a*b*c;x++)if(x%a==0&&x%b==0&&x%c==0)break;cout<<"最小公倍数是:"<<x<<endl;return 0;
}

continue语句 

使用格式: continue;

只能作用在循环语句中,作用是结束本次循环,即跳过当前循环的剩余语句,转到判断循环条件的起始位置,直接判断循环条件,决定是否重新开始下一次循环。

//输出10到20之间不是3倍数的数
#include<iostream>
using namespace std;
int main() {int i;for(i=10;i<=20;i++) {if(i%3==0) continue;cout<<i<<'\t';}return 0;
}

注意:break语句是结束本层循环,continue是结束本次循环。

goto语句

goto语句是一种无条件转移语句,使用格式: goto 语句标号;

语句标号是一个有效的标识符,这个标识符加上一个冒号“ : ”一起出现在程序的某处,即为跳转的位置。

exit和abort函数

二者都是C++的库函数,功能都是终止程序的执行,将流程控制返回给操作系统。

exit用于正常终止程序的执行,abort用于异常终止程序的执行

exit函数格式:exit()表达式;

表达式的值只能是整型数0表示正常退出

abort函数格式:abort();

括号内不能有任何参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/74524.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DASCTF 2023 0X401七月暑期挑战赛web复现

目录 <1> Web (1) EzFlask(python原型链污染&flask-pin) (2) MyPicDisk(xpath注入&文件名注入) (3) ez_cms(pearcmd文件包含) (4) ez_py(django框架 session处pickle反序列化) <1> Web (1) EzFlask(python原型链污染&flask-pin) 进入题目 得到源…

SpringBoot统一功能处理

我们要实现以下3个目标&#xff1a; 统一用户登录权限统一数据格式返回统一异常处理 1.用户的登录权限校验 1.1Spring AOP用户统一登录验证问题 Aspect Component public class UserAspect {// 定义切点controller包下、子孙包下所有类的所有方法Pointcut("execution(…

使用多数据源dynamic-datasource-spring-boot-starter遇到的问题记录

记录使用多数据源dynamic-datasource-spring-boot-starter遇到的问题&#xff1a; 1、工程启动失败 缺少clickhouse连接驱动&#xff0c;引入对应的maven依赖 <!--ck连接驱动--><dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>…

webshell详解

Webshell详解 一、 Webshell 介绍二 、 基础常见webshell案例 一、 Webshell 介绍 概念 webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境&#xff0c;也可以将其称做为一种网页后门。黑客在入侵了一个网站后&#xff0c;通常会将asp或php后门文件与…

国标GB28181安防视频平台EasyGBS大批量通道接入后,创建角色接口未响应的排查

国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台&#xff0c;支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级…

【并发专题】操作系统模型及三级缓存架构

目录 课程内容一、冯诺依曼计算机模型详解1.计算机五大核心组成部分2.CPU内部结构3.CPU缓存结构4.CPU读取存储器数据过程5.CPU为何要有高速缓存 学习总结 课程内容 一、冯诺依曼计算机模型详解 现代计算机模型是基于-冯诺依曼计算机模型 计算机在运行时&#xff0c;先从内存中…

day20-101. 对称二叉树

101. 对称二叉树 力扣题目链接 给定一个二叉树&#xff0c;检查它是否是镜像对称的。 思路 镜像对称必要的条件就是根节点的左右子树互相对称 左子树的左孩子 右子树的右孩子左子树的右孩子 右子树的左孩子 递归 使用递归前要确定递归的顺序&#xff0c;是前序、后序还…

目标识别数据集互相转换——xml、txt、json数据格式互转

VOC数据格式与YOLO数据格式互转 1.VOC数据格式 VOC&#xff08;Visual Object Classes&#xff09;是一个常用的计算机视觉数据集&#xff0c;它主要用于对象检测、分类和分割任务。VOC的标注格式&#xff0c;也被许多其他的数据集采用&#xff0c;因此理解这个数据格式是很重…

QT--day4(定时器事件、鼠标事件、键盘事件、绘制事件、实现画板、QT实现TCP服务器)

QT实现tcpf服务器代码&#xff1a;&#xff08;源文件&#xff09; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间server new QTc…

【图论】强连通分量进阶

一.作用 强连通分量可以判断环和进行缩点。还有一系列作用.... 这篇文章介绍缩点 二.题目 https://www.luogu.com.cn/problem/P2341 三.思路 我们分析可以知道当一个点没有出度时&#xff0c;则为最受欢迎的牛。但如果有多个出度&#xff0c;则没有最受欢迎的牛。 这是只有…

用户权限管理是保证企业图文档安全最有效的策略

企业拥有大量的图文档数据&#xff0c;涉及多个部门和员工&#xff0c;因此需要建立有效的用户权限管理策略&#xff0c;以保护图文档的安全。智橙平台将在线图文档管理与BOM系统的融合应用为企业提供了强大的权限管理功能&#xff0c;能够确保只有授权用户能够访问和编辑特定的…

Linux运维面试题(三)之数据库管理

Linux运维面试题&#xff08;三&#xff09;之数据库管理 1. SQL语句2.集群主从服务器原理主从故障切换单台Mysql达到性能瓶颈时&#xff0c;如何处理 3.索引&#xff08;软优化&#xff09;什么是索引索引的分类劣势&#xff08;优点&#xff1a;效率和减少数据表内排序和随机…

java实现5种不同的验证码图片,包括中文、算式等,并返回前端

导入以下依赖 <!--图片验证码--><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency> 编写controller package com.anXin.user.controlle…

【vue】 Tinymce 富文本编辑器 不想让上传的图片转换成base64,而是链接

前言&#xff1a;最近项目上需要使用富文本编辑器&#xff0c;觉得tinymce很不错就用了&#xff0c;具体怎么在项目中使用参考 【vue】 vue2 中使用 Tinymce 富文本编辑器 【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面&#xff0c;显示空白bug不能编辑 这两天又遇到了…

Open3D(C++) 根据索引提取点云

目录 一、功能概述1、主要函数2、源码二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人 一、功能概述 1、主要函数 std::shared_ptr<PointCloud> SelectByIn

如何运行疑难解答程序来查找和修复Windows 10中的常见问题

如果Windows 10中出现问题&#xff0c;运行疑难解答可能会有所帮助。疑难解答人员可以为你找到并解决许多常见问题。 一、在控制面板中运行疑难解答 1、打开控制面板&#xff08;图标视图&#xff09;&#xff0c;然后单击“疑难解答”图标。 2、单击“疑难解答”中左上角的…

2023华数杯数学建模竞赛C题思路解析

如下为&#xff1a;2023华数杯数学建模竞赛C题 母亲身心健康对婴儿成长的影响 的思路解析 C题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c;还为婴儿提供情感支持和安全感。母亲心理健康状态的不…

O3DE的Pass

Pass介绍 Pass是具有输入和输出的渲染过程。 在最终渲染帧中看到的每个细节都是通过一系列Pass&#xff08;前一个Pass的输出是下一个Pass的输入&#xff09;计算出来的。Pass可以生成图像&#xff08;作为纹理、缓冲区或渲染目标&#xff09;。每个图像都包含关于场景的特定…

CTFSHOW php 特性

web89 数组绕过正则 include("flag.php"); highlight_file(__FILE__);if(isset($_GET[num])){$num $_GET[num]; get numif(preg_match("/[0-9]/", $num)){ 是数字 就输出 nodie("no no no!");}if(intval($num)){ 如果是存在整数 输出 flagecho …

Qt tabwidget中插入widget

一、简单介绍 QT->tabWidget&#xff1a;标签页面。 在ui中通过工具栏自定义拉取控件&#xff0c;其中tabwidget可以可以创建多个标签页面&#xff0c;默认生成两个tab_widget(tab_1/tab_2)。并且可以在ui中右键自由添加控制删除等标签页&#xff0c;切换标签页就是切换widg…