三、基本流程控制结构

news2024/12/26 11:51:11

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)           语句1

else if(表达式2)   语句2

......       ......

else if(表达式n)  语句n

else             语句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.coloradmin.cn/o/832917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

一、Tomcat的介绍和安装配置 安装tomcat&#xff1a; 环境变量的配置&#xff1a; 配置之后重启cmd&#xff0c;执行startup命令&#xff0c;启动tomcat 在localhost:8080&#xff0c;能进入tomcat主界面&#xff0c;说明配置成功 二、eclipse中动态web项目的创建和运行 tomca…

基于回溯算法实现八皇后问题

八皇后问题是一个经典的计算机科学问题&#xff0c;它的目标是将8个皇后放置在一个大小为88的棋盘上&#xff0c;使得每个皇后都不会攻击到其他的皇后。皇后可以攻击同一行、同一列和同一对角线上的棋子。 一、八皇后问题介绍 八皇后问题最早由国际西洋棋大师马克斯贝瑟尔在18…

王道《操作系统》学习(二)—— 进程管理(二)

2.1 处理机调度的概念、层次 2.1.1 调度的基本概念 2.1.2 调度的三个层次 &#xff08;1&#xff09;高级调度&#xff08;作业调度&#xff09; &#xff08;2&#xff09;中级调度&#xff08;内存调度&#xff09; 补充知识&#xff1a;进程的挂起状态和七状态模型 &#x…

Three.js室内场景

Three.js实现三维可视化室内场景 1.效果 2.安装 要安装three 的 npm 模块,请在你的项目文件夹里打开终端窗口,并运行: npm install three 或 yarn add three包将会被下载并安装。然后你就可以将它导入你的代码了: import * as THREE from three引入性能监视器: impor…

MySQL日志——错误日志、二进制日志

错误日志二进制日志查询日志慢查询日志 1.错误日志 查看日志位置&#xff1a; show variables like %log_error%查看错误日志&#xff1a; tail -f /var/log/mysql.log2.二进制日志 show variables like %log_bin%;cd /var/lib/mysql ll2.1 日志格式 查看日志格式指令&…

第9章 CSS-DOM

三位一体的网页 游览器由结构层&#xff0c;表现层&#xff0c;行为层组成 结构层 网页的结构层&#xff08;structural layer&#xff09;由HTML或XHTML之类的标记语言负责创建。 表现层 表示层&#xff08;presentation layer&#xff09;由CSS负责完成。CSS描述页面内容…

腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境

背景 很久很久以前&#xff0c;我写过一篇《有道云笔记EverythingTyporaGitHub图床PicGojsDelivr加速截图工具——创造丝滑免费的Markdown写作环境》&#xff08;https://blog.csdn.net/qq_43721542/article/details/9685957&#xff09;&#xff0c;当时的目的是打造一个云同…

中国艺术孙溟㠭篆刻作品《活着》

人人为生活挣扎着&#xff0c;做着不想做的事&#xff0c;说着不想说的话&#xff0c;为生活低头弯腰委屈求全人生苦多甜少&#xff0c;何时了&#xff01;何时了&#xff01;甜来人生到头了…… 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 文/九钵

美团基础架构面经总结汇总

美团基础架构的面经。 问的全是基础,一个编程语言的问都没有。 问题记录 MySQL-MVCC InooDB是通过 MVCC 实现可重复读的隔离级别的,MVCC 就是多版本并发控制,它其实记录了历史版本的数据,解决了读写并发冲突问题。有一个版本编码,然后它进入了各种操作下的数据状态,能…

2023华数杯数学建模A题思路 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

JDK19 - 虚拟线程详解

JDK19 - 虚拟线程详解 前言一. Continuation 和 虚拟线程1.1 Continuation 案例1.2 Continuation 内的重要成员1.3 run() 执行/恢复执行1.4 yield() 暂停执行1.5 测试和小总结 二. VirtualThread 解读2.1 VirtualThread 内的重要成员和构造2.2 VirtualThread 的首次执行2.3 结束…

Kubernetes高可用集群二进制部署(二)ETCD集群部署

Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署&#xff08;一&#xff09;主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署&#xff08;二&#xff09;ETCD集群部署 Kubernetes高可用集群二进制部署&#xff08;三&#xff09;部署…

problem(2):快速访问Github

访问GitHub慢&#xff0c;这是所有程序员都遇到的问题&#xff0c;今天给大家推荐一款软件&#xff0c;让我们浏览GitHub和浏览gitee一样快&#xff0c;这个开源软件就是FastGithub。 github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、g…

【MATLAB第64期】基于MATLAB的无目标函数SOBOL等全局敏感性分析法模型合集(SOBOL,PAWN,GSA,GSUA,GSAT等) 【更新中】

【MATLAB第64期】基于MATLAB的无目标函数SOBOL等全局敏感性分析法模型合集(SOBOL,PAWN,GSA,GSUA,GSAT等) 【更新中】 引言 在前面几期&#xff0c;介绍了局部敏感性分析法&#xff0c;本期来介绍全局敏感性分析模型&#xff0c;因还在摸索中&#xff0c;所以更新较慢&#xf…

复现原型链污染

目录 原型链污染是什么 例1 复现 例2 复现 原型链污染是什么 第一章中说到&#xff0c;foo.__proto__指向的是Foo类的prototype。那么&#xff0c;如果我们修改了foo.__proto__中的值&#xff0c;是不是就可以修改Foo类呢&#xff1f; 做个简单的实验&#xff1a; // foo是一个…

【Linux】揭秘:提升dd命令效率的秘密武器!

红帽RHCE试听课程&#xff1a;如何快速实现对服务器密码爆破&#xff1f;https://mp.weixin.qq.com/s/JUpf8G86jvnNwvKLUfWcLQ 红帽RHCE试听课程&#xff1a;linux系统下&#xff0c;用这个命令可以提高60%的工作效率https://mp.weixin.qq.com/s/pZVjMI1PLJzrA8hoPzkgMA 大家好…

LNMP及论坛搭建(第一个访问,单节点)

LNMP&#xff1a;目前成熟的一个企业网站的应用模式之一&#xff0c;指的是一套协同工作的系统和相关软件 能够提供静态页面服务&#xff0c;也可以提供动态web服务&#xff0c;LNMP是缩写 L&#xff1a;指的是Linux操作系统。 N&#xff1a;指的是nginx&#xff0c;nginx提…

MS17-010永恒之蓝漏洞复现

一&#xff0c;认识永恒之蓝 1&#xff0c;简介 永恒之蓝&#xff0c;代号MS17-010。爆发于2017年&#xff0c;其通过控制用户主机&#xff0c;利用SMB协议的漏洞来获取系统的最高权限&#xff0c;进而可以窃取信息&#xff0c;偷窥隐私&#xff0c;甚至使系统瘫痪。曾爆发覆盖…

性能测试遇到问题怎么办?学会分析流程就不怕!

一、内存溢出 1、堆内存溢出 现象&#xff1a; &#xff08;1&#xff09;压测执行一段时间后&#xff0c;系统处理能力下降。这时用JConsole、JVisualVM等工具连上服务器查看GC情况&#xff0c;每次GC回收都不彻底并且可用堆内存越来越少。 &#xff08;2&#xff09;压测持续…

数据库数据恢复-Oracle数据库文件出现坏块的数据恢复案例

Oracle数据库故障&初检&分析&#xff1a; 打开Oracle数据库时报错&#xff0c;报错信息&#xff1a;“system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。用户急需恢复zxfg用户下的数据。 出现上述报错的可能原因包括&#xff1a;控制文件损坏、数…