跳到正文

Wiki

運算符

約 4 分鐘閱讀

本文由簡體中文內容確定性轉換,並受版本化術語表保護。

1.運算符

**作用:**用於執行代碼的運算

本章我們主要講解以下幾類運算符:

運算符類型 作用
算術運算符 用於處理四則運算
賦值運算符 用於將表達式的值賦給變量
比較運算符 用於表達式的比較,並返回一個真值或假值
邏輯運算符 用於根據表達式的值返回真值或假值

1.1.算術運算符

作用:用於處理四則運算

算術運算符包括以下符號:

運算符 術語 示例 結果
+ 正號 +3 3
- 負號 -3 -3
+ 10 + 5 15
- 10 - 5 5
* 10 * 5 50
/ 10 / 5 2
% 取模(取餘) 10 % 3 1
++ 前置遞增 a=2; b=++a; a=3; b=3;
++ 後置遞增 a=2; b=a++; a=3; b=2;
-- 前置遞減 a=2; b=--a; a=1; b=1;
-- 後置遞減 a=2; b=a--; a=1; b=2;

示例1:

//加减乘除
int main() {

	int a1 = 10;
	int b1 = 3;

	cout << a1 + b1 << endl;
	cout << a1 - b1 << endl;
	cout << a1 * b1 << endl;
	cout << a1 / b1 << endl;  //两个整数相除结果依然是整数

	int a2 = 10;
	int b2 = 20;
	cout << a2 / b2 << endl; 

	int a3 = 10;
	int b3 = 0;
	//cout << a3 / b3 << endl; //报错,除数不可以为0

	//两个小数可以相除
	double d1 = 0.5;
	double d2 = 0.25;
	cout << d1 / d2 << endl;


	return 0;
}

運行結果:

13
7
30
3
0
2

總結:在除法運算中,除數不能為0

示例2:

//取模
int main() {

	int a1 = 10;
	int b1 = 3;

	cout << 10 % 3 << endl;

	int a2 = 10;
	int b2 = 20;

	cout << a2 % b2 << endl;

	int a3 = 10;
	int b3 = 0;

	//cout << a3 % b3 << endl; //取模运算时,除数也不能为0

	//两个小数不可以取模
	double d1 = 3.14;
	double d2 = 1.1;

	//cout << d1 % d2 << endl;


	return 0;
}

運行結果:

1
10

總結:只有整型變量可以進行取模運算

示例3:

//递增
int main() {

	//后置递增
	int a = 10;
	a++; //等价于a = a + 1
	cout << a << endl; // 11

	//前置递增
	int b = 10;
	++b;
	cout << b << endl; // 11

	//区别
	//前置递增先对变量进行++,再计算表达式
	int a2 = 10;
	int b2 = ++a2 * 10;
	cout << b2 << endl;

	//后置递增先计算表达式,后对变量进行++
	int a3 = 10;
	int b3 = a3++ * 10;
	cout << b3 << endl;


	return 0;
}

運行結果:

11
11
110
100

總結:前置遞增先對變量進行++,再計算表達式,後置遞增相反

1.2.賦值運算符

**作用:**用於將表達式的值賦給變量

賦值運算符包括以下幾個符號:

運算符 術語 示例 結果
= 賦值 a=2; b=3; a=2; b=3;
+= 加等於 a=0; a+=2; a=2;
-= 減等於 a=5; a-=3; a=2;
*= 乘等於 a=2; a*=2; a=4;
/= 除等於 a=4; a/=2; a=2;
%= 模等於 a=3; a%2; a=1;

示例:

int main() {

	//赋值运算符

	// =
	int a = 10;
	a = 100;
	cout << "a = " << a << endl;

	// +=
	a = 10;
	a += 2; // a = a + 2;
	cout << "a = " << a << endl;

	// -=
	a = 10;
	a -= 2; // a = a - 2
	cout << "a = " << a << endl;

	// *=
	a = 10;
	a *= 2; // a = a * 2
	cout << "a = " << a << endl;

	// /=
	a = 10;
	a /= 2;  // a = a / 2;
	cout << "a = " << a << endl;

	// %=
	a = 10;
	a %= 2;  // a = a % 2;
	cout << "a = " << a << endl;


	return 0;
}

運行結果:

a = 100
a = 12
a = 8
a = 20
a = 5
a = 0

1.3.比較運算符

**作用:**用於表達式的比較,並返回一個真值或假值

比較運算符有以下符號:

運算符 術語 示例 結果
== 相等於 4 == 3 0
!= 不等於 4 != 3 1
< 小於 4 < 3 0
> 大於 4 > 3 1
<= 小於等於 4 <= 3 0
>= 大於等於 4 >= 1 1

示例:

int main() {

	int a = 10;
	int b = 20;

	cout << (a == b) << endl; // 0 

	cout << (a != b) << endl; // 1

	cout << (a > b) << endl; // 0

	cout << (a < b) << endl; // 1

	cout << (a >= b) << endl; // 0

	cout << (a <= b) << endl; // 1
	

	return 0;
}

運行結果:

0
1
0
1
0
1

注意:C和C++ 語言的比較運算中, ==“真”用數字“1”來表示, “假”用數字“0”來表示。==

1.4.邏輯運算符

**作用:**用於根據表達式的值返回真值或假值

邏輯運算符有以下符號:

運算符 術語 示例 結果
! !a 如果a為假,則!a為真; 如果a為真,則!a為假。
&& a && b 如果a和b都為真,則結果為真,否則為假。
|| a || b 如果a和b有一個為真,則結果為真,二者都為假時,結果為假。

**示例1:**邏輯非

//逻辑运算符  --- 非
int main() {

	int a = 10;

	cout << !a << endl; // 0

	cout << !!a << endl; // 1


	return 0;
}

運行結果:

0
1

總結: 真變假,假變真

**示例2:**邏輯與

//逻辑运算符  --- 与
int main() {

	int a = 10;
	int b = 10;

	cout << (a && b) << endl;// 1

	a = 10;
	b = 0;

	cout << (a && b) << endl;// 0 

	a = 0;
	b = 0;

	cout << (a && b) << endl;// 0


	return 0;
}

運行結果:

1
0
0

總結:邏輯==與==運算符總結: ==同真為真,其餘為假==

**示例3:**邏輯或

//逻辑运算符  --- 或
int main() {

	int a = 10;
	int b = 10;

	cout << (a || b) << endl;// 1

	a = 10;
	b = 0;

	cout << (a || b) << endl;// 1 

	a = 0;
	b = 0;

	cout << (a || b) << endl;// 0


	return 0;
}

運行結果:

1
1
0

邏輯==或==運算符總結: ==同假為假,其餘為真==