C++ Primer Plus 第六章笔记

news2024/11/27 13:51:53

目录

if 语句

if else语句

if else if else结构

逻辑运算符--&&,||和!

cctype字符函数库

条件运算符(三目运算符)

switch语句

continue和break语句

基本文件输入/输出

总结:本文主要介绍了分支语句和if判断语句,运算符和简单文件输入输出等内容


if 语句

if语句是让程序能够决定是否执行特定的语句。

if语句的语法格式为:

if(test-condition)
    statement

//和while语句的语法格式相似。

如果test-condition(测试条件)为true,即程序执行statement(语句)。

对于statement,既可以是语句,也可以是语句块。

如果条件为false ,程序跳过语句或语句块。和循环的测试条件一样。

if else语句

if else 语句则让程序执行两条语句或语句块中的哪一条。

if else语句的语法格式:

if(test-condition)
    statement01
else
    statement02

//如果测试条件为true或非零,则程序执行statement01,跳过statement02;
//如果测试条件为false或0,则程序将跳过statement01,执行statement02。

注意点:每一条语句既可以是一条语句,也可以是大括号括起来的语句块。

if else if else结构

if else if else结构可以用于在不同的条件下执行不同的代码块。它用于处理多种场景,例如根据不同的用户输入显示不同的页面,或者根据不同的列表项选择不同的操作。

以下是if else if else结构的语法:

if (condition1) {
   // 代码块1
} else if (condition2) {
   // 代码块2
} else if (condition3) {
   // 代码块3
} ... else {
   // 最终代码块
}

在这个结构中,condition1是第一个条件表达式,如果它的结果为true,则执行代码块1;如果它的结果为false,则将继续检查condition2。如果condition2的结果为true,则执行代码块2,以此类推。如果所有的条件都不成立,则执行最终代码块。

注意:if else if else 结构可以包含任意数量的else if块,但最后的else块是可选的。

逻辑运算符--&&,||和!

假设expr01的值为 1,expr02的值为0。

运算符含义例子
&&逻辑与(AND)运算符。如果两个操作数都非零,则条件为真。(expr01 && expr02) 为假
||逻辑或(OR)运算符。如果两个操作数中任意一个非零,则条件为真。(expr01 || expr02) 为真
!逻辑非(NOT)运算符。用来逆转操作数的逻辑状态。如果条件为真,则逻辑非运算符使其转为假。!(expr01&&expr02) 为真

 相关文章链接:

c++运算符_小梁今天敲代码了吗的博客-CSDN博客

cctype字符函数库

函数名称返回值
isalnum()如果参数是字母数字,即字母或数字,函数返回值是true
isalpha()如果参数是字母,函数返回值是true
iscntr()如果参数是控制字符,函数返回值true
isdigit()如果参数是数字(0 ~ 9),函数返回值是true
isgraph()如果参数是除了空格之外的打印字符,函数返回值是true
islower()如果参数是小写字母,函数返回值是true
isprint()如果参数是打印字符(包括空格),函数返回值是true
ispunct()如果参数是标点符号,函数返回值是true
isspace()如果参数是标准空白字符,如空格、进制、换行符、回车、水平制表符或者垂直制表符,函数返回值是true
isupper()如果参数是大写字母,函数返回值是true
isxdigit()如果参数是十六进制数字,即0~9、a~f或A~F,函数的返回值是true
tolower()如果参数是大写字母,则返回其小写,否则返回该参数
toupper()如果参数是小写字母,则返回其大写,否则返回该参数

条件运算符(三目运算符)

三目运算符是一个简短的条件语句,也称为条件运算符。它可以用来替代if语句,常用于简单的逻辑判断。

三目运算符的语法如下:

condition ? expression1 : expression 2;

在这个结构中,condition是一个布尔表达式,如果它的结果为true,则执行expression1,否则执行expression2。

例如,以下if-else语句:

var score = 80;
if (score >= 60) {
    console.log("及格");
} else {
    console.log("不及格");
}

可以用三目运算符简化为:

var score = 80;
score >= 60 ? console.log("及格") : console.log("不及格");

三目运算符可读性较强,且代码简洁,但仅适用于简单的条件语句。当需要进行复杂的判断时,仍然需要使用if语句。

switch语句

允许测试一个变量等于多个值时的情况。

switch语句的通用格式

switch(expression){
    case label01:
            statement(s);
            break; // 可选
    case label02:
            statement(s);
            break; // 可选

    default : // 可选
            statement(s);
}

遵循的规则:

  • expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
  • case的个数是任意的,每个case后跟一个要比较的值一个冒号
  • case中的label必须和expression中的变量的数据类型相同,且必须是常量或者字面值
  • 遇到break语句时,switch语句直接终止。
  • default的执行是因为前面的case都不为真。

continue和break语句

`continue`和`break`是JavaScript中用于控制程序流程的关键字。

- `continue`语句用于跳出当前循环中的一次迭代,继续执行下一次迭代。如果在循环中遇到`continue`语句,程序会跳过当前迭代的余下部分,然后继续执行循环中的下一次迭代。以下是`continue`语句的语法:

for (var i = 0; i < 10; i++) {
  if (i === 3) {
    continue;
  }
  console.log(i);
}

在上述代码中,当变量`i`的值等于3时,`continue`语句会跳出当前迭代,程序会继续执行循环中的下一次迭代。

- `break`语句用于完全跳出当前循环。如果在循环中遇到`break`语句,程序会完全跳出循环,并继续执行循环之后的代码。以下是`break`语句的语法:

for (var i = 0; i < 10; i++) {
  if (i === 3) {
    break;
  }
  console.log(i);
}

在上述代码中,当变量`i`的值等于3时,`break`语句会完全跳出循环,程序不会再执行循环中剩余的迭代。

需要注意的是,在嵌套循环中,`break`语句的作用是跳出当前循环,并不会影响到外层循环。而`continue`语句则只能跳过当前循环中的一次迭代。

基本文件输入/输出

文本I/O 和 文本文件

使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码

不管目标数据类型是什么,输入一开始都是字符数据 ———— 文本数据

cin对象是负责把文本类型转换为其他的类型

控制台文本文件的输入

  • 必须包含头文件iostream
  • 头文件iostream定义了用于处理输入istream类
  • 头文件iostream声明了一个名为coutostream(类)变量(对象)
  • 必须指明名称空间std
  • 结合使用cin运算符>>来读取各种类型的数据。
  • 使用 cin 和 eof() 、fail() 方法来判断输入是否成功。
  • 对象cin本身被用作测试条件时,如果最后一个读取操作成功,将转换为布尔值true,否则转换为false。

文本文件的输出

  • 必须包含头文件iostream

  • 头文件iostream定义了用于处理输出ostream类

  • 头文件iostream声明了一个名为coutostream(类)变量(对象)

  • 必须指明名称空间std::

  • 结合使用cout运算符<<来显示各种类型的数据。

  • 需要声明一个或者是多个ofstream变量(对象),并对其命名,注意:遵守命名规则。

  • 需要将ofstream对象与文件关联起来。方法之一:使用open()方法

  • 使用完文件,使用close()方法将其关闭。

  • 结合使用ofstream对象运算符<<来输出各种类型的数据。

使用文件输出的基本步骤

  • 包含头文件fstream
  • 创建一个ofstream对象
  • 将该ofstream对象同一个文件关联起来。
  • 像使用cout一样使用ofstream对象。·

相关文章:

C++文件操作_小梁今天敲代码了吗的博客-CSDN博客

总结:本文主要介绍了分支语句和if判断语句,运算符和简单文件输入输出等内容

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

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

相关文章

vue 浏览器记住密码后,自动填充账号密码错位

亲测有效&#xff01;&#xff01;! 遇到的场景&#xff1a; 浏览器记住密码后&#xff0c;登录时自动填充账号密码&#xff0c;由于登录时只需要这两个字段所以没问题&#xff0c;见图一&#xff0c;但注册时&#xff0c;账号密码不在一处&#xff0c;见图二 原本账号应该在…

浅谈JVM内存模型与GC垃圾回收

目录 1. 摘要 2. JVM 简单介绍 3. 线程私有的有哪些&#xff1f; 4. 线程共享的有哪些&#xff1f; 5. JVM 栈中程序是如何操作数据的&#xff1f; 6. 内存泄露是什么意思&#xff1f; 7. 堆内存的分配规则 8. 垃圾回收算法 8.1 垃圾回收机制简单概括 8.2 标记清理算法…

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

谷器数据被认证为全国信标委软工分委会全权成员单位

8月23日&#xff0c;全国信息技术标准化技术委员会软件与系统工程分技术委员会&#xff08;简称&#xff1a;全国信标委软工分委会&#xff0c;SAC/TC28/SC7&#xff09;批准通过新一批成员单位&#xff0c;北京谷器数据科技有限公司被成功授牌为全权成员单位。 全国信标委软件…

高校消防安全存在的问题与解决方案介绍 安科瑞 许敏

摘要 &#xff1a;本文分析了当前高校消防安全存在的问题&#xff0c;现有消防系统突出问题表现形式&#xff0c;提出高校智慧消防安全预警防控体系构建&#xff0c;并对智慧消防安全预警平台主要功能进行了简介&#xff0c;对高校智慧消防安全预警系统功能设计具有一定的指导意…

0基础学习VR全景平台篇 第96篇:VR电子楼书

大家好&#xff0c;欢迎观看蛙色VR官方系列课程——VR电子楼书&#xff01; 作为2021年底全新上线的行业解决方案&#xff0c;是专门针对地产、园区数字化营销的一站式VR解决方案&#xff0c;为行业潜在客户提供优质的7x24小时线上看房体验。 本期教程将通过功能介绍后台操作&…

koa2快速2分钟搭建web服务器

koa简介&#xff1a; Koa是一个基于Node的web服务web服务器开发框架。类似于Express。 Koa1它的主要特点是&#xff0c;使用了ES6的Generator函数。 koa2依赖Node.js 7.6.0或者更高版本。 koa不在内核方法中绑定任何中间件&#xff0c;它仅仅是一个轻量级的函数库&#xff0c;几…

【QT】QMessageBox消息框的使用(16)

在实际项目中&#xff0c;弹出消息框是一个很常见的操作&#xff0c;包含错误信息提示、警告信息提示、关于信息提示、还包括判断信息选择等操作&#xff0c;那么今天通过这一节来好好了解下消息框的使用方法。 一.环境配置 1.python 3.7.8 可直接进入官网下载安装&#xf…

图:关键路径

1. AOE网 与AOV网不同&#xff0c;AOE是用边表示活动的图或者网。 1.AOE网的概念 在带权有向图中&#xff0c;以顶点表示事件&#xff0c;以有向边表示活动&#xff0c; 以边上的权值表示完成该活动的开销(如完成活动所需的时间)&#xff0c; 称之为用边表示活动的网络&…

如何尽快了解企业文化并融入团队

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ 每个公司都有自己独特的企业文化&#xff0c;企业文化分为两个部分&#xff0c;一个部分是对外的企业文化&#xff0c;一个部分是企业内部的文化。对外的是公司的形象&…

并行计算之计算平台体系结构(流水线,异构处理器与异构并行)

并行计算粒度 分布式并行(多主机&#xff0c;多进程) &#xff1a; MPI 共享存储式并行 (多线程) &#xff1a;OpenMP OpenCL OpenACC 指令级并行 CPU流水线 CPU流水线 指将一条指令的执行过程划分为多个阶段&#xff0c;使得在每个时钟周期内能够并行执行多条指令&#…

前端开源代码

vue大屏&#xff1a; PublicbigScreenPage–Vue3tsWindcssEchartThree.js大屏案例 PublicbigScreenPage—基于 Vue3、TypeScript、DataV、ECharts 框架的 " 数据大屏项目 介绍&#xff1a;https://blog.csdn.net/qq_40282732/article/details/105656848 Vue3.2 Echar…

AutoDock Vina 对接计算(大批量)

AutoDock Vina 1.2.0 对接计算&#xff08;大批量&#xff09; AutoDockVina 1.2.0 的示例应用&#xff1a;A) 对接多个配体 (PDB 5x72)&#xff1b;B) 使用 AutoDock4 (PDB 4ykq) 的水合对接方案与水分子对接&#xff1b;C)在锌存在的情况下使用 AutoDock4Zn 力场 (PDB 1s63)&…

ChatGLM2 源码解析:`ChatGLMModel`

# 完整的 GLM 模型&#xff0c;包括嵌入层、编码器、输出层 class ChatGLMModel(ChatGLMPreTrainedModel):def __init__(self, config: ChatGLMConfig, deviceNone, empty_initTrue):super().__init__(config)# 如果设置了empty_init&#xff0c;创建任何 PyTorch 模块时&#…

【软件测试】单元测试、集成测试、系统测试有什么区别?

单元测试、集成测试、系统测试有什么区别 1、粒度不同 集成测试bai粒度居中&#xff0c;单元测试粒度最小&#xff0c;系统du测试粒度最大。 2、测试方式不同 集成测试一般由开发zhi小组采用白盒加黑盒的方式来测试&#xff0c;单元测试一般由开发小组采用白盒方式来测试&a…

第六章:中华民族的抗日战争

1.日本发动灭亡中国的侵略斗争 关键字&#xff1a; 中国抗日战争的起点与全民族抗战阶段 2.中国人民奋起抗击日本侵略者 关键字&#xff1a; 1 国共第二次统一战线初步建立的标志&#xff1a;国民党五届三中全会 2 扭转时局的枢纽&#xff0c;国内和平初步实现&#xff1a;…

3.msfconle

目录 1 进入msfconsole 2 连接postgresql数据库 3 msfconsole基本用法 4 更新msf 5 搜索脚本 search 6 查看脚本信息 info 7 设置参数 8 重新设置参数与取消参数 9 退出当前模块 back 10 查看域名基本信息 dig 11 查看域名的详细信息 whois 1 进入msfco…

k8s部署redis 3主3从

k8s部署redis6节点&#xff0c;组成3主3从集群模式 一般来说&#xff0c;redis部署有三种模式。 单实例模式&#xff0c;一般用于测试环境。 哨兵模式 集群模式后两者用于生产部署 哨兵模式 在redis3.0以前&#xff0c;要实现集群一般是借助哨兵sentinel工具来监控master节点…

BeanUtils.copyProperties:曾经是我的女神,现在是我的毒药。

前言 BeanUtils.copyProperties十有八九是你这些年工作中用的很多的其中一个&#xff0c;不管是Apache的还是Spring的。 网上的解释浩如烟海&#xff0c;我这边用一个超简单的例子直观展示给你看。 以后就记住了&#xff0c;能不用就不用。 正文 1、网上的解释 我收纳了几个网…

HDFS 架构剖析

目录 一、HDFS 架构整体概述 二、HDFS 集群角色介绍 2.1 整体概述 2.2 主角色&#xff1a;namenode 2.3 从角色&#xff1a;datanode 2.4 主角色辅助角色&#xff1a; secondarynamenode 三、HDFS 重要特性 3.1 主从架构 3.2 分块存储机制 3.3 副本机制 3.4 …