c++ ------语句

一、简单语句

简单语句是C++中最基本的语句单元,通常以分号(;)结尾,用于执行一个单一的操作。常见的简单语句类型有:

  • 表达式语句:由一个表达式后面加上分号构成,用于计算表达式的值或者执行具有副作用(如改变变量的值)的操作。例如:
int num = 10;  // 定义变量语句,也是一种简单语句
num++;        // 表达式语句,对变量num进行自增操作,自增后num的值变为11
std::cout << "The value of num is: " << num << std::endl;  // 表达式语句,执行输出操作
  • 空语句:仅包含一个分号,不执行任何实际操作,但在某些语法结构中可能会用到,比如在循环体或if语句的分支中占位(不过通常不建议随意使用空语句,以免造成逻辑混淆)。例如:
for (int i = 0; i < 5; i++) {;  // 这里的空语句只是为了举例,实际中这样写没太大意义,可用于暂时占位等情况
}

二、块(复合语句)

块(也称为复合语句)是用花括号({})括起来的一组语句,它在语法上被视为一个单一的语句,可以出现在任何单个语句可以出现的地方。块常用于:

  • 函数体定义:函数的具体实现代码通常放在一个块中。例如:
int add(int a, int b) {int sum = a + b;  // 这是块内的一条语句return sum;       // 这是块内的另一条语句
}
  • 控制结构中包含多条语句的情况:比如在if语句、while语句、for语句等后面,如果需要执行多条语句来实现某个逻辑,就需要使用块。例如:
if (num > 5) {std::cout << "The number is greater than 5" << std::endl;num--;  // 如果num大于5,就执行这两条语句
}

三、if语句

if语句用于根据条件来决定是否执行特定的代码块,它有以下几种常见形式:

  • 单分支if语句
    • 语法格式if (condition) statement; 或者 if (condition) { block },其中condition是一个条件表达式(结果为truefalse),statement是单个语句,block是复合语句(块)。
    • 示例代码
int num = 10;
if (num > 5) {std::cout << "The number is greater than 5" << std::endl;
}

这段代码判断num是否大于5,如果是,则输出相应的提示信息。

  • 双分支if-else语句
    • 语法格式if (condition) statement1; else statement2; 或者 if (condition) { block1 } else { block2 },如果conditiontrue,执行statement1block1;如果conditionfalse,执行statement2block2
    • 示例代码
int num = 3;
if (num % 2 == 0) {std::cout << "The number is even" << std::endl;
}
else {std::cout << "The number is odd" << std::endl;
}

此示例判断num是否为偶数,根据判断结果输出不同的提示信息。

  • 多分支if-else if-else语句
    • 语法格式
if (condition1) {block1
}
else if (condition2) {block2
}
...
else {blockn
}

用于处理多个不同条件的情况,依次判断各个条件,当某个条件满足时执行对应的代码块,若所有条件都不满足,则执行else后的最后一个代码块(else部分可省略,如果确实不存在所有条件都不满足的情况)。
- 示例代码

int score = 85;
if (score >= 90) {std::cout << "Grade: A" << std::endl;
}
else if (score >= 80) {std::cout << "Grade: B" << std::endl;
}
else if (score >= 70) {std::cout << "Grade: C" << std::endl;
}
else if (score >= 60) {std::cout << "Grade: D" << std::endl;
}
else {std::cout << "Grade: F" << std::endl;
}

该代码根据不同的分数范围给出对应的等级评定。
在这里插入图片描述

四、switch语句

switch语句用于多分支选择的情况,它根据一个表达式的值来选择执行多个代码块中的一个。

  • 语法格式
switch (expression) {case constant_expression1:statement_list1;break;case constant_expression2:statement_list2;break;...default:statement_listn;
}

其中expression是一个整型、枚举类型或类类型(需有合适的重载)等能进行比较的值,constant_expression是常量表达式(通常是整型常量、枚举常量等),每个case分支对应不同的值,当expression的值与某个case后的常量表达式相等时,就执行该case下的语句列表,直到遇到break语句跳出switch结构,若所有case都不匹配,则执行default分支下的语句(default部分可省略)。

  • 示例代码
int day = 3;
switch (day) {case 1:std::cout << "Monday" << std::endl;break;case 2:std::cout << "Tuesday" << std::endl;break;case 3:std::cout << "Wednesday" << std::endl;break;case 4:std::cout << "Thursday" << std::endl;break;case 5:std::cout << "Friday" << std::endl;break;case 6:std::cout << "Saturday" << std::endl;break;case 7:std::cout << "Sunday" << std::endl;break;default:std::cout << "Invalid day" << std::endl;
}

此代码根据变量day的值输出对应的星期几的信息,注意每个case分支最后通常要加上break,否则会出现“穿透”现象,继续执行下一个case分支的语句。

五、while语句

while语句用于实现循环结构,只要条件为真,就会重复执行循环体中的语句。

  • 语法格式while (condition) statement; 或者 while (condition) { block },其中condition是循环条件表达式,每次进入循环体之前都会先判断该条件是否为truestatement是单个语句或block是复合语句(循环体)。

  • 示例代码

int i = 0;
while (i < 5) {std::cout << "The value of i is: " << i << std::endl;i++;
}

这段代码会循环输出i的值,从0开始,每次循环i自增1,直到i不小于5时停止循环。

六、for语句

for语句也是一种常用的循环结构,它通常用于已知循环次数的情况,语法更加紧凑,能方便地初始化循环变量、判断循环条件以及更新循环变量。

  • 语法格式for (initialization; condition; expression) statement; 或者 for (initialization; condition; expression) { block },其中:

    • initialization:用于初始化循环变量,一般是声明并初始化一个变量,只执行一次,在循环开始前执行。
    • condition:循环条件表达式,每次进入循环体之前判断,若为true则进入循环体,若为false则结束循环。
    • expression:用于更新循环变量的值,在每次循环体执行完后执行。
  • 示例代码

for (int j = 0; j < 10; j++) {std::cout << "The value of j is: " << j << std::endl;
}

此代码会循环输出j的值,从0开始,每次循环j自增1,直到j达到10时停止循环。

这些语句是C++编程中构建逻辑和控制程序流程的基础,熟练掌握它们对于编写各种功能的程序非常重要。
在这里插入图片描述

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

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

相关文章

【他山之石】The SVG path Syntax: An Illustrated Guide:SVG 中的 path 语法图解指南

写在前面 本文为我的自学精译专栏《CSS in Depth 2》第 086 篇文章、在介绍 CSS 的 clip-path 属性的用法时作者提到的一篇延伸阅读材料&#xff0c;以图文并茂的形式系统梳理了 SVG path 属性的方方面面。其中最为精彩的是文中列举的大量使用案例。为了方便查找&#xff0c;特…

小型 Vue 项目,该不该用 Pinia 、Vuex呢?

说到 Vue3 的状态管理&#xff0c;我们会第一时间想到 Pinia、Vuex&#xff0c;但是经过很长一段时间的 Vue3 项目开发&#xff0c;我逐渐发现&#xff0c;我们真的有必要用 Pinia、Vuex 这类的状态管理工具吗&#xff1f; 带着这样的疑惑&#xff0c;我首先是想知道一下 Pini…

c4d动画怎么导出mp4视频,c4d动画视频格式设置

宝子们&#xff0c;今天来给大家讲讲 C4D 咋导出mp4视频的方法。通过用图文教程的形式给大家展示得明明白白的&#xff0c;让你能轻松理解和掌握&#xff0c;不管是理论基础&#xff0c;还是实际操作和技能技巧&#xff0c;都能学到&#xff0c;快速入门然后提升自己哦。 c4d动…

EfficienetAD异常值检测之瓷砖表面缺陷检测(免费下载测试数据集和模型)

背景 当今制造业蓬勃发展&#xff0c;产品质量把控至关重要。从精密电子元件到大型工业板材&#xff0c;表面缺陷哪怕细微&#xff0c;都可能引发性能故障或外观瑕疵。人工目视检测耗时费力且易漏检&#xff0c;已无法适应高速生产线节奏。在此背景下&#xff0c;表面缺陷异常…

将Minio设置为Django的默认Storage(django-storages)

这里写自定义目录标题 前置说明静态文件收集静态文件 使用django-storages来使Django集成Minio安装依赖settings.py测试收集静态文件测试媒体文件 前置说明 静态文件 Django默认的Storage是本地&#xff0c;项目中的CSS、图片、JS都是静态文件。一般会将静态文件放到一个单独…

Redis生产实践中相关疑问记录

1. Redis相关疑问 1.1. redis内存使用率100% 就等同于redis不可用吗&#xff1f; 正常使用情况下&#xff0c;不是。 redis有【缓存淘汰机制】&#xff0c;Redis 在内存使用率达到 100% 时不会直接崩溃。相反&#xff0c;它依赖内存淘汰策略来释放内存&#xff0c;确保系统的…

量化交易——RSI策略(vectorbt实现)

本文为通过vectorbt&#xff08;以下简称vbt&#xff09;实现量化交易系列第一篇文章&#xff0c;通过使用vbt实现RSI策略从而熟悉其代码框架。 关于本文所使用数据的说明 由于vbt官方文档提供的入门案例使用的数据是通过其内置的yfinance包获取&#xff0c;在国内无法直接访…

本地摄像头视频流在html中打开

1.准备ffmpeg 和(rtsp-simple-server srs搭建流媒体服务器)视频服务器. 2.解压视频流服务器修改配置文件mediamtx.yml ,hlsAlwaysRemux: yes 3.双击运行服务器。 4&#xff0c;安装ffmpeg ,添加到环境变量。 5.查询本机设备列表 ffmpeg -list_devices true -f dshow -i d…

unipp中使用阿里图标,以及闭坑指南

-----------------------------------------------------点赞收藏才是更新的动力------------------------------------------------- unipp中使用阿里图标 官网下载图标在项目中引入使用注意事项 官网下载图标 进入阿里图标网站 将需要下载的图标添加到购物车中 2. 直接下载…

设计模式の享元模板代理模式

文章目录 前言一、享元模式二、模板方法模式三、代理模式3.1、静态代理3.2、JDK动态代理3.3、Cglib动态代理3.4、小结 前言 本篇是关于设计模式中享元模式、模板模式、以及代理模式的学习笔记。 一、享元模式 享元模式是一种结构型设计模式&#xff0c;目的是为了相似对象的复用…

flink实现复杂kafka数据读取

接上文&#xff1a;一文说清flink从编码到部署上线 环境说明&#xff1a;MySQL&#xff1a;5.7&#xff1b;flink&#xff1a;1.14.0&#xff1b;hadoop&#xff1a;3.0.0&#xff1b;操作系统&#xff1a;CentOS 7.6&#xff1b;JDK&#xff1a;1.8.0_401。 常见的文章中&…

越疆科技营收增速放缓:毛利率未恢复,持续亏损下销售费用偏高

《港湾商业观察》施子夫 12月13日&#xff0c;深圳市越疆科技股份有限公司&#xff08;以下简称&#xff0c;越疆科技&#xff0c;02432.HK&#xff09;发布全球发售公告&#xff0c;公司计划全球发售4000万股股份&#xff0c;其中3800万股国际发售&#xff0c;200万股香港公开…

datasets 笔记:加载数据集(基本操作)

参考了huggingface的教程 1 了解数据集基本信息&#xff08; load_dataset_builder&#xff09; 在下载数据集之前&#xff0c;通常先快速了解数据集的基本信息会很有帮助。数据集的信息存储在 DatasetInfo 中&#xff0c;可能包括数据集描述、特征和数据集大小等信息。&…

Java图片拼接

最近遇到一个挺离谱的功能&#xff0c;某个表单只让上传一张图&#xff0c;多图上传会使导出失败。跟开发沟通后表示&#xff0c;这个问题处理不了。我... 遂自己思考&#xff0c;能否以曲线救国的方式拯救一下&#xff0c;即不伤及代码之根本&#xff0c;又能解决燃眉之急。灵…

.NET重点

B/S C/S什么语言 B/S&#xff1a; 浏览器端&#xff1a;JavaScript&#xff0c;HTML&#xff0c;CSS 服务器端&#xff1a;ASP&#xff08;.NET&#xff09;PHP/JSP 优势&#xff1a;维护方便&#xff0c;易于升级和扩展 劣势&#xff1a;服务器负担沉重 C/S java/.NET/…

Linux——卷

Linux——卷 介绍 最近做的项目&#xff0c;涉及到对系统的一些维护&#xff0c;有些盘没有使用&#xff0c;需要创建逻辑盘并挂载到指定目录下。有些软件需要依赖空的逻辑盘&#xff08;LVM&#xff09;。 先简单介绍一下卷的一些概念&#xff0c;有分区、物理存储介质、物…

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务

M3D: 基于多模态大模型的新型3D医学影像分析框架&#xff0c;将3D医学图像分析从“看图片“提升到“理解空间“的层次&#xff0c;支持检索、报告生成、问答、定位和分割等8类任务 论文大纲理解1. 确认目标2. 分析过程&#xff08;目标-手段分析&#xff09;核心问题拆解 3. 实…

clickhouse-副本和分片

1、副本 1.1、概述 集群是副本和分片的基础&#xff0c;它将ClickHouse的服务拓扑由单节点延伸到多个节点&#xff0c;但它并不像Hadoop生态的某些系统那样&#xff0c;要求所有节点组成一个单一的大集群。ClickHouse的集群配置非常灵活&#xff0c;用户既可以将所有节点组成…

Redis 集群实操:强大的数据“分身术”

目录 Redis Cluster集群模式 1、介绍 2、架构设计 3、集群模式实操 4、故障转移 5、常用命令 Redis Cluster集群模式 1、介绍 redis3.0版本推出的Redis Cluster 集群模式&#xff0c;每个节点都可以保存数据和整个集群状态&#xff0c;每个节点都和其他所有节点连接。Cl…

C# 从控制台应用程序入门

总目录 前言 从创建并运行第一个控制台应用程序&#xff0c;快速入门C#。 一、新建一个控制台应用程序 控制台应用程序是C# 入门时&#xff0c;学习基础语法的最佳应用程序。 打开VS2022&#xff0c;选择【创建新项目】 搜索【控制台】&#xff0c;选择控制台应用(.NET Framew…