【C++基础语法】03 C++ 程序逻辑结构、分支 if 及关系表达式

【C++基础语法】04 C++ 多分支 if ... else if ... else 、switch 及逻辑表达式 理解和掌握 多分支语句 if ... else if ... else,switch ,三目运算符,以及常用的逻辑表达式 阅读详情

再次说明,本专栏文章采用最少必要知识原则,只讲解必要知识,让青少年,先上手编程,再上道。

文章采用更简单易懂的文字,不涉及很多的专有名词,部分举例有失精准。一切为了开始入门编程。

请先复习上文 - 重点回顾 - 部分内容。

本节课,需要的是大量的训练,文章会比较短。跟着练习,很多内容,很容易掌握。不跟着练习,跟容易掌握,毕竟你要是说你会,谁也不会和你抬杠。但真的会不会,just show me the code.

程序逻辑结构

任何高级编程语言,都有基本的三种逻辑结构,是对现实生活中常见问题的逻辑抽取,此三种逻辑结构,是一切问题的底层最小逻辑单元。

一根筋:顺序结构是一根筋,程序代码从上往下逐行执行,直到代码结束;
要么要么:分支结构,又称选择判断、分治判断结构,是指程序执行到某个语句时,对不同条件结果,分别执行不同代码片段;
转圈圈:循环结构,就像中了爱的魔力,原地转圈圈,将一段代码执行若干次。

再来重述。
顺序结构是一根筋,从上往下执行所有代码,是程序的主旋律。就像生活一样,一致向前。
分支结构是要么这样、要么那样、要么咋样,可以让程序视不同情况执行不同代码。就像生活中时时刻刻存在的选择,要么左转、要么右转、要么直行、要么原路返回。
循环结构是将一段代码重复执行若干次。就像生活,一周重复的 7 天,做不完的作业,打不完的怪,但也总有好心情,像有魔力一样,围绕我们转圈圈。

之前,写的代码,都是顺序结构,是从上往下坚定不移,一行行执行的。下面来看,生活冲,充满的选择语句。

分支结构

分支结构,根据某类条件下,结果的不同可能性,分为 3 种。

只有这样,一种可能的 if 语句;
眼下只有两条路可走,两种可能的 if ... else ... 语句;
条条大路通罗马,万般可能的 if ... else if .... else if... else if ... else ... 语句。

分支结构的语句模板:

// 一种可能的
if (条件表达式1) {
	// 条件表达式1 判断为 true 时,执行的代码块
} 

// 两种可能的
if (条件表达式1) {
	// 条件表达式1 判断为 true 时,执行的代码块
} else {
	// 条件表达式1 判断为 false 时,执行的代码块
}

// 多种可能的
if (条件表达式1) {
	// 条件表达式1 判断为 true 时,执行的代码块
} else if (条件表达式2 ) {
	// 条件表达式1 判断为 false,条件表达式2 判断为 true 时,执行的代码块
} else {
	// 条件表达式1 判断为 false,条件表达式2 判断为 false 时,执行的代码块
}

分支结构,很复杂,也可以很简单。
多加练习后,你会发现,原来就这,so easy~。
不练习,只看文章,你会觉得,就这,我也不会。

关系运算符

有一种关系,叫做没关系。

有一类关系,叫做数学关系。下面来看,数学关系,不同维度,不同分法。

  • 以相等与否,分为 等于 == 和 不等于 !=。
  • 以是否大于,分为 大于 > 和 不大于 <= (小于等于)。
  • 以是否小于,分为 小于 < 和 不小于 >= (大于等于)。

哪些年,折磨你很久的,很多数学关系名词:高于、不超过、低于、不大于、最少、最多等。

都逃不过上述的六种关系:==、!=、>、<、>=、<= 。描述数字大小关系的符号,称之为关系运算符。当然也可以描述其他数据类型的值。

注意:== 两个等于号,是判断是否等于,如果等于,返回 true,否则,返回 false。

  • 区分 = 一个等于号,是赋值操作,将 = 右面的值赋值给 = 左面的变量。即 左值 = 右值 。
  • → 左值和右值,也有一定深意,别做深究。简单记,= 左面的是左值,右面的是右值。

关系表达式:由关系运算符和运算数(参与关系运算的数)组成的是关系表达式,也称条件表达式。

关系表达式,就是数学上经常做的判断题,判断的结果只有两种,要么 真,要么 假。所以,关系表达式的结果,要么是 true,要么是 false。

单分支语句 - if …

Are you ready?

点我,在线编程试一下👇

#include <iostream>
using namespace std;

int main() {
	
	bool is_ready = true;	// 声明 is_ready 变量,赋初始值 true
	if(is_ready == true) {
		cout << "I am ready! GO." << endl;
	}
    return 0;
}

任务1:有感情的完成上述程序,并尝试修改 bool is_ready = false; ,观察屏幕输出的内容,阐述现象和原因。

Are you pass the exam?

点我,在线编程试一下👇

#include <iostream>
using namespace std;

int main(){
	
	// 验证能否通过考试,若成绩大于等于 60 ,输出 pass
	// 若成绩小于 60,输出 fail
	int score;
	cin >> score;
	
	if(score >= 60) {
		cout << "pass" << endl;
	}

	if(score < 60) {
		cout << "fail" << endl;
	}
	
	return 0;
}

任务2:有感情的完成上述程序,并尝试修改键盘输入不同的数值 ,观察屏幕输出的内容,阐述现象和原因。

The number equals zero or not?

点我,在线编程试一下👇

#include <iostream>
using namespace std;

int main(){
	
	// 验证键盘录入的整数 n 和 0 的关系
	// 如果等于 0,输出 equal
	// 如果不等于 0,输出 not equal
	int n;
	cin >> n;
	
	// code here by yoursef.
	
	return 0;
}

任务3:自行完成上述代码。

The number is odd or even?

判断一个整数,是奇数还是偶数,在学习编程时,尤其练习中,最经常遇到的一个小问题。首先,明确定义:

  • 奇数:形如 1、3、5、7、9、… 等不能被 2 整除的整数;
  • 偶数:形如 0、2、4、6、8、… 等能被 2 整除的整数;

整除:如果一个数是另一个数字的整数倍,则说可以被另一个数整除。整除,也就是余数为 0。

  • n % 2 == 0 结果为 true 时,表示 n 可以被 2 整除,也就是 n 是偶数;

点我,在线编程试一下👇

#include <iostream>
using namespace std;

int main(){
	
	// 验证键盘录入的整数 n 的奇偶性
	// 如果是偶数,输出 even
	// 如果是奇数,输出 odd
	int n;
	cin >> n;
	
	if(n % 2 == 0) {
		cout << "even" << endl;
	}
	
	if(n % 2 != 0) {
		cout << "odd" << endl;
	}


	return 0;
}

任务4:有感情的完成上述程序,并好好体会一下整除,这很重要。

关于整除,是非常常见的一个知识点和编程技巧。而且还伴随,很多细碎的知识点,会在大量练习中,不断面对、理解和掌握,这里不做知识点的堆积阐述。

毕竟,很多的知识点,咋看之下,你总会误认为,自己已经掌握了。但实际是,你远远没有掌握,除非你总能在 OJ 提交时,获得绿色的 AC。

所以,请在练习中不断精进吧~

双分支语句 - if … else …

双分支语句 if...else... ,同一个条件表达式,满足时(条件表达式结果 true),执行 if 中的代码块;不满足时(条件表达式结果 false),执行 else 中的代码块。

特别注意,是同一个条件表达式,返回 true 、false时,执行不同的代码。

使用 if ... else ... 重写前述案例。
比如:

Are you pass the exam?

点我,在线编程试一下👇

#include <iostream>
using namespace std;

int main(){
	
	// 验证能否通过考试,若成绩大于等于 60 ,输出 pass
	// 若成绩小于 60,输出 fail
	int score;
	cin >> score;
	
	if(score >= 60) {
		cout << "pass" << endl;
	} else {	// 体会下,else 等价于之前的 if(score < 60)
		cout << "fail" << endl;
	}
	
	return 0;
}

任务5:好好体会 else 。

另外:下面的案例,自行修成为 if...else...
The number equals zero or not?
The number is odd or even?

点我,在线编程试一下👇

任务6:完成上述两个练习,好好体会 else 。

多分支语句 - if … else if … else …

多分支语句,是对同一个条件表达式,多个不同结果,执行不同的代码逻辑。

也可能是,多个条件表达式的不同结果 → 不建议这么干,不同条件表达式,最好是使用多个分支语句。每个独立的分支语句,只针对同一个条件表达式,优点是代码逻辑清晰。

举例,查询四大名著的作者,同一个的条件表达式,四大名著的名称

  • 若是西游记,输出 …
  • 若是三国演义,输出 …
  • 若是红楼梦,输出 …
  • 若是水浒传,输出 …
  • 若不是四大名著,输出 …

举例,学校将成绩按照梯度,评定等级,同一个条件表达式,考试成绩所在梯度

  • 若是 90 -100,输出 A
  • 若是 75 -89,输出 B
  • 若是 60 -74,输出 C
  • 若是 0 - 59,输出 D
  • 若不是 0 - 100,输出 成绩不合法

Do you get ‘A’?

点我,在线编程试一下👇

#include <iostream>
using namespace std;

int main(){
	
	// 将成绩按梯度分等级
	int score;
	cin >> score;
	
	if(score >= 90 && score <= 100) {
		cout << "A" << endl;
	} else if(score >= 75 && score <= 89) {
		cout << "B" << endl;
	} else if(score >= 60 && score <= 74) {
		cout << "C" << endl;
	} else if(score >= 0 && score <= 59) {
		cout << "D" << endl;
	} else {    // 成绩不合法,输出 INVALID
		cout << "INVALID" << endl;
	}

	return 0;
}

任务7:完成上述练习,其中 && 是逻辑与运算符,代表 and。&& 连接的两个关系表达式,同时满足,整个表达式的值才是 true。
→ 举例:score >= 90 && score <= 100 ,表示 score 要同时大于等于 90,小于等于 100,也就是在 [90, 100] 之间,才返回 true

重点回顾

回顾重点

  1. 程序逻辑结构,分为三种:顺序结构、分支结构、循环结构;
  2. 关系运算符:比较数字大小关系的运算符,六种关系:==、!=、>、<、>=、<= ;
  3. 关系表达式:由关系运算符和运算数组成的式子,也称条件表达式,结果要么是 true、要么是 false;
  4. 分支结构:单分支 if、双分支 if ... else ... 、多分支 if...else if ... else if... else ...。分支结构,针对同一个条件表达式的不同结果,执行不同代码逻辑;
  5. 多分支更多是练习中,不断感悟,逻辑运算符和其表达式,练习中讲解,不单讲知识点,毕竟说起来就几句话,但实操很容易迷糊;

课后练习

在洛谷上注册自己的账户。完成一下入门题单 - B2035-B2051。

后续预告

下面两个内容是练习课,知识点很少,重点是在高质量的练习中,不断体悟。这种练习方式,我称之为 五感俱全学习法

  • 【C++基础语法】04 C++ 多分支 if 、switch 及逻辑表达式
  • 【C++基础语法】05 C++ 分支语句综合应用及知识综合
C++中运算符 &和&&、|和|| 的区别 简介:&&是逻辑与运算符,||是逻辑或运算符,都是逻辑运算符,两边只能是bool类型 &与| 既可以进行逻辑运算,又可以进行位运算,两边既可以是bool类型,又可以是数值类型区别:if (A && B) 如果 A 为 false ,整个表达式就为 false,不再计算 B 的值了。 if (A & B) 如果 A 为 false ,整个表达式就为 false,但还要计算 B 的值。 if 阅读详情

相关推荐

【C++ 程序设计入门基础】- 第2节-分支结构

主要讲解C++中的分支判断

跟着飞哥学编程(全栈联盟) 2464

c++分支语句和逻辑运算符

分支语句和逻辑运算符if语句和if else语句逻辑运算符条件运算符switch语句,continue和break语句 if语句和if else语句 1.if语句的语法: if(test-condition//测试条件) statement//语句 如果测试条件为true,则程序执行语句,如果测试条件为false,则程序跳过语句。if测试条件也将被强制转换为bool值,因此0将被转换为false,非0为true。 例子:给num赋值12,12整除2余数0,所以满足条件 #include <iost

weixin_50866517的博客 1401

图形学基础|基于SDF的卡通阴影图

图形学基础|基于SDF的卡通阴影图 文章目录图形学基础|基于SDF的卡通阴影图一、前言二、SDF(Signed Distance Field)三、阴影图生成3.1 SDF生成3.2 插值参考博文 一、前言 回顾之前做的卡通渲染,角色面部阴影是靠一张阴影贴图实现的。 为了更好地控制角色的脸部阴影,通过计算脸部朝向与光照方向的夹角和一张单色的FaceMap来判断。 FaceMap的每个像素表示:该像素判断为阴影时候需要达到的夹角。 例如: 当方向光正对角色的时候,夹角为0°,对应的值为0,此时,FaceMap

【黑键】 1万+

c++从零开始---if 分支语句和逻辑表达式

1、分支语句 if 和 else if 设计产能程序的一个关键是使程序具有决策能力。当 c++ 程序必须决定是否执行某个操作时,通常使用 if 语句来实现选择。if 有两种格式: if 和 if else。 if 语句组成(一层条件): if (test-condition) statement 如果 test-condition 为 TRUE,则程序将执行 statement,后者既可以是一条语句,也可以是语句块。如果测试程序为 FALSE,则程序将跳过语句。 if else 语句构成(两层条件

BUSHUAID的博客 1606

Ansys-结构动力学分析-圆柱斜齿轮模态分析学习心得

模态分析的步骤基本一直,不同点在于选择什么单元类型,模型,节点约束等 圆柱斜齿轮模态分析的难点在于圆柱斜齿轮的模型建立,和所要约束的节点的选择。 用命令流方法建立齿轮模型效率较高,当然,在ansys里建立复杂的模型实在不敢恭维,对于自下而上建模,需要知道每个关键点的坐标位置。下图是创建圆柱斜齿轮模型的命令流方式。 模型不同使用的数据也就不同了。 对于施加约束的问题这就必须要熟悉select e...

weixin_45385183的博客 1831

python点云可视化

Python三种点云可视化方案:mayavi、matplotlib、CloudCompare。

叶子的博客 1万+

C++ 支持and 和 or

今天写C++项目时,由于之前用python帮同事写了个脚本,不小心将&&习惯的写成and,然后送git上review时被打回来了,当时就惊了,为啥没报错?我还特意去用codeblocks敲了一下,然后去查了一下,发现是C++11的新特性,C++的语法越来越友好了哈哈。。 #include <bits/stdc++.h> using namespace std; int main() { int a=1,b=2,c=0; if(a and b) .

Eros__L的博客 1741

材料仿真软件:LAMMPS_(8).温度和压力控制

在 LAMMPS 中,温度和压力的控制是通过多种恒温器和恒压器实现的。Nose-Hoover 恒温器和恒压器因其准确性和广泛适用性而被经常使用,而 Berendsen 恒温器和恒压器则因其计算效率高而适用于初步仿真或粗粒化模型。温度重标和压力重标方法虽然简单,但在某些情况下可以快速调整系统的温度和压力。通过选择合适的控制方法,可以根据具体的需求和系统特性来设计和运行分子动力学仿真,从而获得准确和可靠的结果。在实际应用中,建议先进行初步的仿真以确定合适的控制参数,然后再进行细致的仿真以验证结果的稳定性。

kkchenjj的博客 1692

C++(学习笔记)分支语句和逻辑运算符

本人在阅读C++ primer plus(第六版)的过程中做的笔记,本文记录了C++中的逻辑表达式、字符函数库cctype、?:运算符、switch语句、break语句和continue语句、读取数字的循环和简单文件的输入输出。

Leonbro的博客 866

智能体异常行为检测-基于行为序列的异常模式识别技术【附代码】

在多智能体系统(Multi-Agent Systems, MAS)中,智能体之间的行为协调与自主决策是系统稳定运行的关键。然而,当某个智能体因策略偏移、环境变化或潜在攻击而出现**异常行为(Abnormal Behavior)**时,整个系统可能陷入混乱或崩溃。

一键难忘的博客 1144

初学者入门YOLO目标检测:从懵圈到上手,这篇文章讲透所有核心(附学习路径+避坑指南)

目标:比如训练一个“检测苹果和橘子”的模型,或者“检测人脸”的模型;任务:学会用LabelImg标注数据,制作YOLO格式的数据集,用命令行训练模型;关键:不用追求高精度,能训练出一个能检测出目标的模型就行。很多初学者卡在入门阶段,不是因为智商不够,而是因为“想太多,做太少”——总觉得要把所有原理搞懂才能动手,结果越想越怕,最后放弃。先动手,再动脑。先跑通一个案例,获得成就感;再制作自定义数据集,训练简单模型;最后再回头去理解原理,优化模型。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 690

C++逻辑运算符

逻辑运算作为编程中不可或缺的一部分,当有逻辑相关的处理时,C++ 提供了很多相关的逻辑表达式如:if,do-while,switch等。

程序员吗? 8819

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C++程序设计初步——关系运算和逻辑运算

关系运算和逻辑运算、判断闰年

Crocodile1006的博客 4593

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C++的学习之旅——分支语句和逻辑运算符

愉快的C++学习之旅开始啦~~分支语句和逻辑运算符包括:if语句、逻辑表达式、字符函数库cctype、?:运算符、switch语句、break和continue语句

qq_47134270的博客 509

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

捋一捋C++中的逻辑运算(一)——表达式逻辑运算

​编程中有三种结构,顺序结构、选择结构和循环结构。在选择结构中,需要用到逻辑值来判断程序选择运行的部分。这个逻辑值一般都是一个比较复杂的逻辑表达式运算的结果,用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式,计算逻辑表达式结果的过程就是逻辑运算。逻辑运算经常与if...else语句或条件表达式搭配使用。

m0_72963799的博客 2778

C++ if()括号中写多个条件

C++语言中if()中可以写多个条件 &&:并且 ||:或者 !:否定 &&优先级高于|| 比如: if(a>1 && a<100)表示a大于1且小于100; if(a<1 || a>100)表示a小于1或者a大于100; if(a%4 == 0 && a%100 !=0 || a%400 == 0)表a所代表...

weixin_44208324的博客 4万+

数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)

最近在学习数据结构,有必要对自己这两天的学习做一个总结,今天就来总结下,数据结构的逻辑结构 按照分类标准的不同,我们把数据结构分为逻辑机构和存储结构,今天主要讲解逻辑结构 逻辑结构:是指数据对象中的数据元素之间的相互关系,主要分为以下四种结构 1.集合结构 集合结构中的数据元素处理同属于一个集合里,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于一个集合”。数...

zhc的博客 1万+

学习笔记:C++语句实现分支结构

学习笔记:C++语句实现分支结构

qwsbcjendb的博客 1333

(C++入门---4)分支结构(if else switch)

if 语句回根据对某个条件的判断结果,将程序的流程分为两支。 if-else 嵌套 switch 语句 if-else 嵌套 多路分支的第一种实现方法就是使用 if-else 嵌套,即在 if 分支和(或者) else 分支中再嵌套 if-else 语句。 例如: cin >> angle; // 输入角度 if (angle % 90 == 0) { // if-else嵌套 if (angle % 180 == 0) cout << "

livercy 1134

【C/C++数据结构】数据结构逻辑结构C/C++ 介绍

计算机科学中,数据结构是一种存储和组织数据的方式,以便有效地访问和修改数据。逻辑结构是数据元素之间的逻辑关系,它独立于数据的物理存储。下面我们将详细介绍四种基本的逻辑结构。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1258

C++语言基础_第二讲_分支结构_if语句/swith语句/关系运算与逻辑运算

if语句 在C语言中也经常需要对一些条件作出判断,从而决定执行哪一段代码,这时就需要使用选择结构语句。if条件语句有三种语法格式。 if if..else if..else if..else(嵌套) if语句——单分支结构 if...else语句——双分支结构 if..else if..else 在一个if语句中还可以包含一个或多个if语句,这称为if语句的嵌套。 switch语句 switch条件语句也是一种常用的选择语句,和if条件语句不同,它只能针对某个表达式的值作出..

weixin_42730572的博客 1503

C++单分支计算

题目描述 甲乙两个人在公园相遇,甲说我今年n岁了(n是一个两位的整数,个位和十位不相等),乙说,太巧了,你的年龄倒过来,就是我的年龄,请问两个人谁的年龄更大, 请输出那个更大的年龄?题目描述 请从键盘读入一个三位整数,判断这个三位整数是否是对称数(对称数指的是,这个数正过来和倒过来是同一个数,比如:121、686、808等数都是对称数),如果是对称数,则输出“Y”,否则输出“N”。比如,输入18,由于十位为1,个位为8,个位更大,因此输出8。试编写一个程序,输入身高,输出相应的门票价格。

BanyeBirth的博客 4247

c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句

c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句

weixin_46838716的博客 1454

C++暴风雨之前的if&&if-else语句

本来上节讲完switch,这节应该接着讲的,但开始下一节之前,我想带着大家复习下if语句。 因为下节会用到,且难度增加。 步入正题~ if 结构: 含义: 如果表达式的值为真,则执行其后的语句,否则不执行该语句。 Question1:学校入选篮球队的资格条件为身高必须大于等于180CM,小明身高185CM,那么小明能入选吗? 代码: #include <stdio.h> int main() { int height = 185; if(height>=1

m0_46565226的博客 738
上一篇: 【C++基础语法】02 C++ 基本数据类型及其转换
下一篇: 【C++基础语法】04 C++ 多分支 if ... else if ... else 、switch 及逻辑表达式
老坛算粉
博客等级 码龄12年 708粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛算粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值