Skip to content

04.🚦 C++的运算符

在编程里,我们需要让计算机帮我们做数学计算,也需要根据条件做出“判断”。这就需要用到运算符——它们是计算和判断的工具。 本章将带你认识 C++ 中最常用的几类运算符:

  • 算数运算符(+ - * / %
  • 关系运算符(< > <= >= == !=
  • 赋值运算符(= 以及 += 等扩展形式)
  • 逻辑运算符(&& || !
  • 三目运算符(?:

NOTE

实际上,C++ 的运算符还有很多,比如位运算符、指针相关运算符等。但在我们入门阶段不常用,理解起来也有难度,所以这里暂时不介绍。

1. 算数运算符 🔍

算数运算符就是我们用来做加减乘除和求余数的符号,这和我们平时学习的数学一致,包括运算法则也是一样的。

也就是:

  • 先乘除后加减
  • 有括号先算括号
  • C++ 中只使用小括号 (),没有中括号 [] 和大括号 {}
运算符作用示例
+加法3 + 2 = 5
-减法5 - 1 = 4
*乘法4 * 3 = 12
/除法(整数除法)10 / 3 = 3
%取余(求余数)10 % 3 = 1
cpp
int a = 10;
int b = 3;
cout << a / b << endl; // 输出 3
cout << a % b << endl; // 输出 1

WARNING

整数除法会去掉小数部分,比如 10 / 3 的结果是 3,而不是 3.333。 如果想得到小数,至少一个数字必须使用浮点数类型,例如 10.0 / 3,结果才是 3.333...

2. 关系运算符 🎋

关系运算符用于比较两个值,结果是 true(真)或 false(假),常用在条件判断中。

运算符作用示例
<小于3 < 5 结果是 true
>大于5 > 7 结果是 false
<=小于等于5 <= 5 结果是 true
>=大于等于6 >= 7 结果是 false
==等于3 == 3 结果是 true
!=不等于3 != 4 结果是 true

示例程序:

cpp
int x = 5;
int y = 7;
cout << (x < y) << endl;  // 输出 1(true)
cout << (x == y) << endl; // 输出 0(false)

3. 赋值运算符 🧵

赋值运算符是把右边的值“赋给”左边的变量:

cpp
int a = 10;
a = 20;  // 把 20 赋值给 a,覆盖原来的 10
cout << a << endl;  // 输出 20

除了最基本的 =,C++ 还支持复合赋值运算符

运算符含义示例
+=加后赋值a += 5 等价于 a = a + 5
-=减后赋值a -= 2 等价于 a = a - 2
*=乘后赋值a *= 3 等价于 a = a * 3
/=除后赋值a /= 2 等价于 a = a / 2
%=余数后赋值a %= 3 等价于 a = a % 3

4. 逻辑运算符 🎄

在编程里,我们不仅需要做数学计算,还常常要根据多个条件同时成立或者满足其中一个条件,做出不同的决定。 这时候,单纯用算数运算符是不够的,必须用逻辑运算符来组合和判断条件。

运算符作用示例说明
&&与(并且)(x > 0) && (x < 10)两个条件都为真,结果才为真
||或(或者)`(x < 0)
!非(取反)!(x == 5)结果是 falsetrue,反之亦然
  • 为什么要有逻辑运算符? 因为生活中的“判断”很复杂,比如“今天是星期六天气晴朗”才去公园,或者“如果你完成作业或者考试及格”就可以玩游戏。 这类“并且”“或者”“不”的关系,用逻辑运算符来表达最清楚。

  • 逻辑运算符主要有三种:

    • &&(与):要求所有条件都成立才算成立,像“并且”的意思。
    • ||(或):只要有一个条件成立就算成立,像“或者”的意思。
    • !(非):把条件的结果取反,原来是对的变错,原来是错的变对。

示例程序:

cpp
int x = 7;
cout << ((x > 0) && (x < 10)) << endl; // 输出 1(true)
cout << ((x < 0) || (x > 10)) << endl; // 输出 0(false)
cout << !(x == 7) << endl;             // 输出 0(false)

TIP

你可以使用多个逻辑运算符,比如:x > 0 && x < 10 || y == 5将多个条件结合起来,你可以根据你的需要来组合它们。

5. 三目运算符 🎨

三目运算符是一种简洁的条件判断写法,格式如下:

cpp
条件 ? 条件为真时的值 : 条件为假时的值;

示例程序:

cpp
int a = 5;
int b = (a > 3) ? 100 : 200;  // 如果 a > 3,b 等于 100,否则为 200
cout << b << endl;  // 输出 100

NOTE

三目运算符适合简单判断。条件太复杂时,请使用 if 语句来写得更清楚。(if语句在后续章节介绍)

6. 拓展🌱

C++ 还有两个经常出现在程序里的特殊运算符:

运算符作用示例含义
++自增x++++x变量增加 1
--自减x----x变量减少 1

示例程序:

cpp
int a = 5;
a++;
cout << a << endl;  // 输出 6

TIP

虽然 ++xx++ 都是让变量加 1,但它们用在程序里的表现不一样:

cpp
int a = 5;
int b = ++a;  // 先把 a 增加 1,a 变成 6,然后 b = 6
int c = a++;  // 先把 c 赋值为 a 的当前值 6,然后 a 再加 1,a 变成 7

cout << b << endl;  // 输出 6
cout << c << endl;  // 输出 6
cout << a << endl;  // 输出 7
  • ++x(前置自增):先把变量加 1,然后用新值。
  • x++(后置自增):先用变量当前值,然后变量再加 1。

单独写一行 x++++x 时,效果一样,都是让变量加 1。区别只在它们参与复杂表达式时才会显现。初学阶段,先掌握加1的作用,再慢慢理解区别即可。

7. 小结 🎗

  • 算数运算符:用于加减乘除、求余
  • 关系运算符:用于比较两个值
  • 赋值运算符:把值赋给变量,还有加法等的简写形式
  • 逻辑运算符:用于组合多个条件
  • 三目运算符:用于写简单的条件判断

8. 练习题 📝

  1. 输入两个整数,输出它们的和、差、积、商(整数除法)和余数。
  2. 判断输入的一个整数是否在 1 到 100 之间(包括 1 和 100),输出 truefalse
  3. 给定两个整数,判断它们是否相等,并输出结果。
  4. 输入一个整数,判断它是否是偶数(提示:偶数能被 2 整除)。
  5. 使用三目运算符判断一个整数是否为正数,正数输出 “正”,否则输出 “非正”。
  6. 给定一个整数 x,输出 truex 大于 0 并且小于 100,否则输出 false。****

💬 与我联系 QQ:774165314 | 微信:Yonas_Luo