【C++ Primer Plus学习记录】if语句

目录

一、if语句

二、if else语句

三、格式化if else语句

四、if else if else结构


一、if语句

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

if有两种格式:if和if else。

if语句的语法与while相似:

if(test-condition)
   statement;

如果test-condition(测试条件)为true,则程序将执行statement(语句),后者既可以是一条语句,也可以是语句块。如果测试条件为false,则程序将跳过语句。和循环测试条件一样,if测试条件也将被强制转换为bool值,因此0将被转换为false,非零为true。整个if语句被视为一条语句。

例如,假设读者希望程序计算输入中的空格数和字符总数,则可以在while循环中使用cin.get(char)来读取字符,然后使用if语句识别空格字符并计算其总数。程序清单6.1完成了这项工作,它使用句点(.)来确定句子的结尾。

//if
#if 1
#include<iostream>
using namespace std;

int main()
{
	char ch;
	int spaces = 0;
	int total = 0;
	cin.get(ch);//成员函数cin.get(char)读取输入中的下一个字符(即使它是空格),并将其赋给变量ch
	while (ch != '.')
	{
		if (ch == ' ')
			spaces++;
		total++;
		cin.get(ch);
	}
	cout << spaces << " spaces, " << total << " characters total in sentence\n";//字符总数中包括按回车键生成的换行符

	system("pause");
	return 0;
}
#endif

二、if else语句

if语句让程序决定是否执行特定的语句或语句块,而if else语句则让程序决定执行两条语句或语句块中的哪一条,这种语句对于选择其中一种操作很有用。

if else语句的通用格式如下

if(test-condition)
   statement1
else
   statement2

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

从语法上看,整个if else结构被视为一条语句。

例如,假设要通过对字母进行加密编码来修改输入的文本(换行符不变)。这样,每个输入行都被转换为一行输出,且长度不变。这意味着程序对换行符采用一种操作,而对其他字符采用另一种操作。正如程序清单6.2所表明的,该程序还演示了限定符std::,这是编译指令using的替代品之一。

//if else
#if 1
#include<iostream>

int main()
{
	char ch;

	std::cout << "Type, and I shall repeat.\n";
	std::cin.get(ch);//成员函数cin.get(char)读取输入中的下一个字符(即使它是空格),并将其赋给变量ch
	while (ch != '.')
	{
		if (ch == '\n')
			std::cout << ch;
		else
			std::cout << ++ch;//ASCII码
		std::cin.get(ch);
	}
	std::cout << "\nPlease excuse the slight confusion.\n";

	system("pause");
	return 0;
}
#endif

运行情况:

 

三、格式化if else语句

if else中的两种操作都必须是一条语句。如果需要多条语句,则需要用大括号将它们括起来,组成一个块语句。

四、if else if else结构

程序清单6.3使用这种格式创建了一个小型测验程序。

#if 1
#include<iostream>
using namespace std;
const int Fave = 27;

int main()
{
	int n;
	cout << "Enter a number in the range 1-100 to find";
	cout << "my favorite number: ";
	do
	{
		cin >> n;
		if (n < Fave)
			cout << "Too low -- guess again: ";
		else if (n > Fave)
			cout << "Too high -- guess again: ";
		else
			cout << Fave << " is right!\n";
	} while (n != Fave);

	system("pause");
	return 0;
}
#endif

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

贝锐花生壳3大安全能力,保障网络服务安全远程连接

在没有公网IP的情况下&#xff0c;使用内网穿透工具&#xff0c;将本地局域网服务映射至外网&#xff0c;虽然高效快捷&#xff0c;但信息安全也是不可忽略的方面。 对此&#xff0c;贝锐花生壳提供了多维度的安全防护能力&#xff0c;满足不同场景下用户安全远程访问内网服务的…

【IO流(1)】——基于字节流实现的文件复制及资源释放新写法

文章目录 IO流基于字节流复制文件IO流概述FileInputStream读取一个字节FileInputStream读取多个字节FileInputStream读取全部字节FileOutStream写字节 IO流资源释放JDK7以前的资源释放JKD7之后的资源释放 IO流 基于字节流复制文件 需求&#xff1a;复制一张图片&#xff0c;从…

hook其他调试技巧

输出堆栈信息 通过 android.util.Log 输出当前线程的堆栈跟踪信息。 function showStacks() {Java.perform(function () {console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new() )); }) } 可以在需要的…

基于ssm平面设计课程在线学习平台系统源码和论文

idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;平面设计课程在线学习平台系统也不例外&#xff0c;但目前国内的市场仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;…

如何恢复已删除的 JPG/JPEG 文件的方法深度解析!

您是否意外丢失或删除了 JPG 或 JPEG 照片&#xff1f;幸运的是&#xff0c;您可以使用照片恢复工具将它们恢复。立即获取适用于 PC 的 JPEG 恢复工具 - 照片恢复&#xff1a; 照片是捕捉和重温生活中特殊时刻的最佳方式。因此&#xff0c;当我们由于硬盘崩溃、意外格式化磁盘…

Java实现快速排序算法

快速排序算法 &#xff08;1&#xff09;概念&#xff1a;快速排序是指通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行&…

No suitable driver found for jdbc:mysql://localhost:3306(2023/12/8更新)

有两种情况&#xff1a; 压根没安装下载了但没设为库或方法不对 看到这里看过另一篇解决方法的友友该疑惑了&#xff0c;咋跟上一篇文案一样呢 别急&#xff0c;这里的区别在于安装方法&#xff0c;这次提供的方法更为通用 大多数为第一种情况&#xff1a; 一. 下载jdbc 打开…

【C++】:搜索二叉树

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关多态的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

uniapp实战 —— 轮播图【数字下标】(含组件封装,点击图片放大全屏预览)

组件封装 src\components\SUI_Swiper2.vue <script setup lang"ts"> import { ref } from vue const props defineProps({config: Object, })const activeIndex ref(0) const change: UniHelper.SwiperOnChange (e) > {activeIndex.value e.detail.cur…

小红书品牌投放须知,家居产品软文怎么写?

家居产品软文&#xff0c;是一种展示家居产品的文案写作形式。优秀的家居产品软文能够通过引人入胜的文字&#xff0c;吸引受众的注意力并激发他们选购家居产品的兴趣。今天我们来为大家分享一下小红书品牌投放须知&#xff0c;家居产品软文怎么写&#xff1f; 一、关键词布局 …

[mysql]linux安装mysql5.7

之前安装的时候遇到了很多问题&#xff0c;浪费了一些时间。整理出这份教程&#xff0c;照着做基本一遍过。 这是安装包: 链接&#xff1a;https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包&#xff0c;上传到linux。我这里就放到downloads目录下面…

认知觉醒(六)

认知觉醒(六) 第二节 感性&#xff1a;顶级的成长竟然是“凭感觉” 人类生存于世&#xff0c;比拼的是脑力思维&#xff0c;但极少有人知道&#xff0c;我们的身体里还有一个更高级的系统&#xff0c;若能善用&#xff0c;成就非凡。 1941年&#xff0c;德军对英国本土进行…

十二、MapReduce概述

1、MapReduce &#xff08;1&#xff09;采用框架 MapReduce是“分散——>汇总”模式的分布式计算框架&#xff0c;可供开发人员进行相应计算 &#xff08;2&#xff09;编程接口&#xff1a; ~Map ~Reduce 其中&#xff0c;Map功能接口提供了“分散”的功能&#xff…

ChatGPT新媒体运营神器:轻松驾驭内容创作与传播

文章目录 1. 内容创作2. 社交媒体管理3. 用户互动与客户服务 《巧用ChatGPT轻松玩转新媒体运营》内容简介作者简介目录前言/序言本书内容本书特色本书读者对象获取方式 随着互联网的高速发展&#xff0c;新媒体已经成为了人们获取信息、交流思想的重要渠道。在这个信息爆炸的时…

Spring cloud - gateway

什么是Spring Cloud Gateway 先去看下官网的解释&#xff1a; This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 6, Spring Boot 3 and Project Reactor. Spring Cloud Gateway aims to provide a simple, yet effective way t…

面试题之Docker篇

1、Docker 是什么&#xff1f; Docker一个开源的应用容器引擎&#xff0c;是实现容器技术的一种工具&#xff0c;让开发者可以打包他们的应用以及环境到一个镜像中&#xff0c;可以快速的发布到任何流行的操作系统上。 2、Docker的三大核心是什么? 镜像&#xff1a;Docker的镜…

MBD Introduction

介绍 MATLAB是MathWorks公司的商业数学软件&#xff0c;应用于科学计算、可视化以及交互式程序设计等高科技计算环境。Simulink是MATLAB中的一种可视化仿真工具。 Simulink是一个模块图环境&#xff0c;用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以…

openGauss学习笔记-144 openGauss 数据库运维-例行维护-慢sql诊断

文章目录 openGauss学习笔记-144 openGauss 数据库运维-例行维护-慢sql诊断144.1 背景信息144.2 前提条件 openGauss学习笔记-144 openGauss 数据库运维-例行维护-慢sql诊断 144.1 背景信息 在SQL语句执行性能不符合预期时&#xff0c;可以查看SQL语句执行信息&#xff0c;便…

【Linux】tmux简单使用

它允许你在一个终端窗口中创建多个终端会话&#xff0c;并在它们之间进行切换。以下是tmux的一些主要用途和功能&#xff1a; 多窗口&#xff1a; Tmux允许你在一个终端中创建多个窗口。每个窗口可以包含一个或多个终端会话&#xff0c;你可以轻松地在这些窗口之间切换。面板分…