继《斗破CPP》 第贰章(上) ---- 初识分支句: ,我们继续修炼《斗破CPP》 第贰章(下) ---- 拿捏运算符与标识符。本篇的内容极为简单,很适合于初学者,但系列要有系列的样,再小的苍蝇也是菜。有基础的小伙伴可以留个足迹给个三连,先谢谢各位啦!
目录
关系运算符
我们在敲代码的过程中经常会用到关系运算符进行判断:
if(x > y)
像 > 运算符这样判断左右操作数的值为大小关系的运算符称为关系运算符。我们来总结一下4种关系运算符:
x < y | 当x小于y时为true,否则为false |
x > y | 当x小大于y时为true,否则为false |
x <= y | 当x小于等于y时为true,否则为false |
x >= y | 当x大于等于y时为true,否则为false |
不可以把运算符 <= 或者 >= 中的 = 放在左边,使之变为 =< 或者 => 。除此之外,也不可以在不等号和等号之间加入空格,使之便成为 < = 或者 = > 。请注意不要写错了哦。
受数学知识的影响,我们可能会犯这样的小错误。来看一下下面的错误案例:
1 <= a <= 3 //哒咩哟!
正确的应该通过等会要学到的逻辑运算符表示,如下所示:
a >= 1 && a <= 3 //这是正确的!
相等运算符
我们来看看相等运算符:
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "整数a:"; cin >> a;
cout << "整数b:"; cin >> b;
if (a == b)
cout << "两个值相等。\n";
else
cout << "两个值不相等。\n";
}
if语句的1条件中的 == 是判断做右操作数是否相等的运算符,该运算符和判断是否不相等的 != 运算符统称为相等运算符。且看下表:
x == y | 当x和y相等时为true,否则为false |
x != y | 当x和y不相等时为true,否则为false |
有个小细节我们必须要知道,相等运算符是二元运算符,因此不可以用a == b == c这样的形式判断变量a、变量b和变量c的值是否相等,而应使用在下文分享给小伙伴们的逻辑运算符,用a == b && b == c的形式判断。
禁!混淆相等运算符和赋值运算符
相信很多初学的小伙伴会把判断n和0是否相等的if(n == 0)误写为:
if (n = 0) 语句 //不管n的值为何,都不会执行语句
这样一来的话,无论n为何值,程序都不会执行任何操作(不会执行语句)。不仅如此,n的值也会变赋值为0哦。
逻辑运算符
逻辑非运算符
我们通过代码来认识一下什么叫做逻辑非运算符;
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "整数值:";
cin >> n;
if (!n)
cout << "这个值是0。\n"; //1
else
cout << "这个值不是0。\n"; //2
}
该程序中的!n 是逻辑非运算符,它可以得到将操作数的真假反转后的值。规则如下表:
!x | 当x为false时,表达式为true;当x为true时,表达式为false |
该程序基于”将0视为false,将0以外的数值视为true“的规则,在n为0的时候执行1,n不为0时执行。
逻辑与运算符
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "整数值:";
cin >> n;
if (n == 0)
cout << "这个值是0。\n"; //1
else if (n >= -9 && n <= 9)
cout << "这个值是1位数。\n"; //2
else
cout << "这个值是2位及以上的数。\n"; //3
}
代码极其简单,却充分展现了逻辑与运算符&&如何使用。对使用了该运算符的表达式x && y求值,当x和y同时为true时,表达式为true,否则表达式为false。故x && y可以等价为x且y。我们来看看逻辑与的表:
逻辑与
x | y | x&&y |
true | true | true |
true | false | false |
false | true | false |
false | false | false |
逻辑或运算符
||运算符成为逻辑或运算符,它与逻辑非(!)运算符和逻辑非(&&)运算符统称为逻辑运算符。我们来看看下面这段程序,它可以用来判断读入的整数值是否是2位及以上的数,并显示判断结果。
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "整数值:";
cin >> n;
if (n <= -10 || n >= 10) // 1
cout << "这个值是2位及以上的数。\n";
else // 2
cout << "这个值是不到2位的数。\n";
}
对表达式x || y求值,当x和y中的任意一个为true时,表达式为true,否则表达式为false。故x || y可以等价为x或y。我们来看看逻辑或的表:
逻辑或
x | y | x || y |
true | true | true |
true | false | true |
false | true | true |
false | false | false |
短路求值
逻辑或运算符和逻辑与运算符在使用过程中都会出现短路求值的现象。我们通过上面的逻辑与表和逻辑或表来理解,比如我们在使用&&运算符时,如果x值为false,就省略对y的求值;在使用||运算符时,如果x值为true,就省略对y的求值。
当仅通过左操作数的求值结果就可以明确逻辑运算表达式的求值结果时,将省略对右操作数的求值,这就是短路求值!
条件运算符
条件运算符是我们学习过程中唯一的三元运算符?: 我们来看看它是如何使用的:
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "整数a:"; cin >> a;
cout << "整数b:"; cin >> b;
int min = a < b ? a : b; // 求较小值
cout << "较小值为" << min << "。\n";
}
这段代码也特别简单,如果a小于b,则赋给变量min的初始值为a的值,否则为b的值。条件表达式如同if语句的浓缩版,在C++编程中是极为常用的。
逗号运算符
我们来看下面两段代码:
if(a < b)
min = a,max = b; //1
else
min = b,max = b; //2
如果a<b,就执行1语句:它对a和b按顺序求值,左侧表达式min = a的求值结果会被丢弃,对右侧表达式max=b求值得到的类型和值将成为逗号表达式 min = a,max = b;整体的类型和值,最终会得到b的求值结果;语句2与1过程一样。
x = (i,j);
如果我们这样求值,i为1j为2的话,j的值2将会赋给x。
破!标识符
在编写程序时,需要对变量、函数、宏和其他实体进行命名,这些名字就叫做标识符。很多新手程序猿在看书的过程中并没有注重书中的细节或者听课没听到重点,就会在平常练习标识符类题目中屡次碰壁。
A、B选项都是以字母开头,D选项是以下划线开头,然而C选项是以数字开头的,故C错。这类题目其实很简单的,只要掌握方法就是来一题灭一题。
但C语言是区分大小写的,也就是说,在标识符中C语言区别大写字母和小写字母。例如,下列标识符是不同的:
shilv_
Shilv_
shIlv_
大小写不同,其所含的意义也不同。
有的程序猿心中或许有这样的疑惑:标识符的长度有没有限制呢?答案是有,但不完全有!这跟编译器有关,在这里并不细讨。
未完待续
很感激阅读到这里的你,《斗破CPP》的精彩并不止于这些,学有余力的小伙伴可以看看下面这些博客,都是有着极多的技巧与干货❤!
《斗破CPP》 第壹章 ---- 初窥CPP_施律.的博客-优快云博客
《斗破CPP》 第贰章(上) ---- 初识分支句_施律.的博客-优快云博客
关于时间的函数,让你成为掌控时间的强者:(极力推荐!)https://blog.youkuaiyun.com/qq_64263760/article/details/124075069
如果觉得本篇博客对正在学习编程的你有帮助的话,请给施律.多一点的支持与关注!未来的一段时间里施律.将和小伙伴们一起斗破CPP,希望下次的我能为大家奉上更好的博客内容,也希望下次的博客有你!