再次说明,本专栏文章采用最少必要知识原则,只讲解必要知识,让青少年,先上手编程,再上道。
文章采用更简单易懂的文字,不涉及很多的专有名词,部分举例有失精准。一切为了开始入门编程。
请先复习上文 - 重点回顾 - 部分内容。
本节课,需要的是大量的训练,文章会比较短。跟着练习,很多内容,很容易掌握。不跟着练习,跟容易掌握,毕竟你要是说你会,谁也不会和你抬杠。但真的会不会,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
。
Are you ready?
点我,在线编程试一下👇
#include
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
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
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
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
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?
点我,在线编程试一下👇
多分支语句 - if … else if … else …任务6:完成上述两个练习,好好体会 else 。
多分支语句,是对同一个条件表达式,多个不同结果,执行不同的代码逻辑。
也可能是,多个条件表达式的不同结果 → 不建议这么干,不同条件表达式,最好是使用多个分支语句。每个独立的分支语句,只针对同一个条件表达式,优点是代码逻辑清晰。
举例,查询四大名著的作者,同一个的条件表达式,四大名著的名称
- 若是西游记,输出 …
- 若是三国演义,输出 …
- 若是红楼梦,输出 …
- 若是水浒传,输出 …
- 若不是四大名著,输出 …
举例,学校将成绩按照梯度,评定等级,同一个条件表达式,考试成绩所在梯度
- 若是 90 -100,输出 A
- 若是 75 -89,输出 B
- 若是 60 -74,输出 C
- 若是 0 - 59,输出 D
- 若不是 0 - 100,输出 成绩不合法
Do you get ‘A’?
点我,在线编程试一下👇
#include
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
回顾重点
- 程序逻辑结构,分为三种:顺序结构、分支结构、循环结构;
- 关系运算符:比较数字大小关系的运算符,六种关系:
==
、!=
、>
、<
、>=
、<=
; - 关系表达式:由关系运算符和运算数组成的式子,也称条件表达式,结果要么是
true
、要么是false
; - 分支结构:单分支
if
、双分支if ... else ...
、多分支if...else if ... else if... else ...
。分支结构,针对同一个条件表达式的不同结果,执行不同代码逻辑; - 多分支更多是练习中,不断感悟,逻辑运算符和其表达式,练习中讲解,不单讲知识点,毕竟说起来就几句话,但实 *** 很容易迷糊;
在洛谷上注册自己的账户。完成一下入门题单 - B2035-B2051。
后续预告下面两个内容是练习课,知识点很少,重点是在高质量的练习中,不断体悟。这种练习方式,我称之为 五感俱全学习法
- 【C++基础语法】04 C++ 多分支 if 、switch 及逻辑表达式
- 【C++基础语法】05 C++ 分支语句综合应用及知识综合
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)