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

news2024/11/19 10:44:55

目录

一、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.coloradmin.cn/o/1298294.html

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

相关文章

Linux快速搭建本地yum更新audit

场景&#xff1a;内网一台服务器上线&#xff0c;需要更新audit版本&#xff0c;因无法与其他服务器通信&#xff0c;需临时配置本地仓库。 1、上传新版本操作系统iso到服务器 2、创建yum仓库文件存储目录 mkdir /opt/myrepo 3、挂载磁盘到/mnt mount /opt/Kylin-Server-V…

【头歌系统数据库实验】实验4 MySQL单表查询

目录 第1关. 在users表中新增一个用户&#xff0c;user_id为2019100904学号&#xff0c;name为2019-物联网-李明 第2关. 在users表中更新用户 user_id为robot_2 的信息&#xff0c;name设为 机器人二号 第3关. 将solution表中所有 problem_id 为1003 题目的解答结果&#xf…

MyBatis——Java 持久层框架

文章目录 MyBatis 是什么准备工作创建一个数据库和表引入依赖 配置连接字符串和 MyBatisMyBatis 组成MyBatis 使用步骤定义一个类创建 MyBatis 接口&#xff08;以查询所有为例&#xff09;创建与接口对应的 xml 文件&#xff08;实现接口中的所有方法&#xff09;使用单元测试…

Power BI - 5分钟学习拆分列

每天5分钟&#xff0c;今天介绍Power BI拆分列功能。 什么是拆分列&#xff1f; 有时导入Power BI的数据表中&#xff0c;某列内容都包含同样的特殊字符如 /&/-/_等&#xff0c;可以利用这个特殊字符进行拆分列的操作&#xff0c;获得我们想要的信息。 操作举例&#xf…

time模块(python)

一.sleep休眠 [rootrhel8 day04]# vim demo01_time.py import time def banzhuan():print("搬砖")time.sleep(3.5) #让程序休眠3.5秒print("结束")banzhuan()[rootrhel8 day04]# python3 demo01_time.py 搬砖 结束运行时&#xff0c;会发现程序中间暂停…

成本核算基础知识 – 了解实际成本

原文地址&#xff1a;Basics of Costing – Understanding Actual Cost | SAP Blogs 建议大家打开原文地址查看原文&#xff0c;有些地方专业术语翻译不一定正确。希望搬的这些文章能帮助查资料的大家一个信息&#xff0c;再跳转到原文去看。 一、概述 大家好&#xff0c; …

综合练习(OSPF+BGP+ISIS+单臂路由)

一、知识补充 1、链路聚合 为了满足不同服务器之间的数据交互&#xff0c;交换机之间必须具有更高的带宽&#xff0c;同时需要具备链路的冗余备份&#xff1b; 通常可以增加核心交换机之间的物理链路数量&#xff0c;以提高核心交换机之间的链路带宽&#xff1b;在启用STP的…

JDBC详解——增删改查(CRUD)、sql注入、事务、连接池

1. 概念&#xff1a; Java DataBase Connectivity&#xff0c; Java 数据库连接&#xff0c; Java语言操作数据库 JDBC本质&#xff1a;其实是官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口。各个数据库厂商去实现这套接口&…

[RoBERTa]论文实现:RoBERTa: A Robustly Optimized BERT Pretraining Approach

文章目录 一、完整代码二、论文解读2.1 模型架构2.2 参数设置2.3 数据2.4 评估 三、对比四、整体总结 论文&#xff1a;RoBERTa&#xff1a;A Robustly Optimized BERT Pretraining Approach 作者&#xff1a;Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Da…

【【HDMI 彩条显示实验 】】

HDMI 彩条显示实验 本次实验参考自 《正点原子 FPGA 领航者开发板 第三十一章 彩条显示实验》 使用的是领航者开发板 ZYNQ - 7020 HDMI 是新一代的多媒体接口标准&#xff0c;英文全称是 High-Definition Multimedia Interface&#xff0c;即高清多媒体接口。它能够同时传输视…

【SQLite】SQLite3约束总结

前面学习了SQLite数据库的常见使用方法&#xff0c;其中包含许多约束&#xff0c;常见的如NOT NULL、DEFAULT、UNIQUE、PRIMARY KEY&#xff08;主键&#xff09;、CHECK等 本篇文章主要介绍这些约束在SQLite中的使用 目录 什么是约束NOT NULL 约束DEFAULT约束UNIQUE约束PRIMA…

【nuxt3】cannot read preperties of null (reading ‘$nuxt‘)

问题描述 vue3 中&#xff0c;通过 createVNode 创建子组件实例时&#xff0c;发现子组件无法获取到父组件中的 router、store 信息&#xff0c;一旦子组件使用就会报错。 问题原因 通过控制台断点调试&#xff0c;发现时 appContext 值为空导致的。怀疑是创建子组件的时候&a…

RHEL8---网络配置

本章主要介绍网络配置的方法。 网络基础知识查看网络信息图形化界面修改通过配置文件修改命令行管理主机名的设置 网络基础知识 一台主机需要配置必要的网络信息&#xff0c;才可以连接到互联网。需要的配置网络信息包括IP、 子网掩码、网关和 DNS。 1、IP 地址 在计算机…

TOMCAT9安装

1、官网下载 2、解压到任意盘符&#xff0c;注意路径不要有中文 3、环境变量 path 下 配置 %CATALINA_HOME%\bin 4、找到tomcat9/bin&#xff0c; 点击 start.bat启动 tomcat

vue pc官网顶部导航栏组件

官网顶部导航分为一级导航和二级导航 导航的样子 文件的层级 router 文件层级 header 组件代码 <h1 class"logo-wrap"><router-link to"/"><img class"logo" :src"$config.company.logo" alt"" /><i…

Meta Platforms推出Imagine:基于Emu的免费AI文本到图像生成器服务

优势主要体现在以下两个方面&#xff1a; 精细运动控制&#xff1a; 该项目在实现摄像机运动和物体运动方面表现出色&#xff0c;成功实现了对两者运动的高度独立控制。这一特性为运动控制提供了更为精细的调整空间&#xff0c;使得在视频生成过程中能够实现更灵活、多样的运动…

Leetcode刷题笔记题解(C++):LCR 181. 字符串中的单词反转

思路&#xff1a;根据栈的原理先进后出&#xff0c;使用栈来依次保存每个单词&#xff0c;然后再依次从栈中取出每个单词 class Solution { public:string reverseMessage(string message) {int left 0;int right message.size()-1;//消除字符串前后多余的空格&#xff0c;比…

第1章-第1节-第一个Java程序,命令行编译并运行Java

第一个Java程序不用任何IDE&#xff0c;用记事本去编写&#xff0c;用命令行去编译并运行&#xff0c;这样便于了解Java程序运行原理。 1、首先打开记事本&#xff0c;写下如下代码&#xff1a; 然后另存为xxx.java&#xff0c;xxx文件名不强求与类名相同&#xff0c;但是建议…

安装@uni-helper/uni-app-types之后模板代码报错

安装uni-helper/uni-app-types之后模板代码一大片红 之后在https://uni-helper.js.org/uni-app-types找到了答案 配置tsconfig.json 添加vueCompilerOptions这个配置后&#xff0c;报错不见了 "vueCompilerOptions": {"nativeTags": ["block"…

算法Day24 不专心开车

不专心开车 Description 小硕开车经过一条公路&#xff0c;这条路线总共由n 1个不同海拔的点组成。小硕从海拔为0的点0开始骑行。 给小硕一个长度为n的整数数组arr&#xff0c;其中arr[i]是点i和点i 1的净海拔高度差&#xff08;0≤i < n&#xff09;。请你返回最高点的海…