- 從零開始:Qt可視化程序設計基礎教程
- 彭凌西等編著
- 891字
- 2022-01-06 09:52:49
1.5 運算符
運算符是一種告訴編譯器執行特定的數學或邏輯操作的符號。C++內置了豐富的運算符,并提供以下類型的運算符。
● 算術運算符:用于處理四則運算。
● 賦值運算符:用于將表達式的值賦給變量。
● 比較運算符:用于表達式的比較,并返回一個真值或假值。
● 邏輯運算符:用于根據表達式的值返回真值或假值。
· 1.5.1 算術運算符
作用:處理四則運算。
表1-4所示為常用的算術運算符,部分使用方法見例1-6、例1-7、例1-8。
表1-4 常用的算術運算符
運算符 |
含義 |
示例 |
結果 |
+ |
正號 |
+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-6:加減乘除運算。
//加減乘除
#include <iostream>
using namespace std;
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;
}
例1-6運行結果如圖1-21所示。
總結:在除法運算中,除數不能為0。
例1-7:取模運算。
//取模
#include <iostream>
using namespace std;
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-7運行結果如圖1-22所示。
圖1-21 例1-6運行結果
圖1-22 例1-7運行結果
總結:只有整型變量可以進行取模運算。
例1-8:遞增運算。
//遞增
#include <iostream>
using namespace std;
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;
}
例1-8運行結果如圖1-23所示。
圖1-23 例1-8運行結果
總結:前置遞增先對變量進行遞增運算,再計算表達式;后置遞增則先計算表達式,后對變量進行遞增運算。
· 1.5.2 賦值運算符
作用:將表達式的值賦給變量。
表1-5所示為常用的賦值運算符,部分使用方法見例1-9。
表1-5 常用的賦值運算符
運算符 |
含義 |
示例 |
結果 |
= |
賦值 |
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;(取余數) |
例1-9:賦值運算符。
#include <iostream>
using namespace std;
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;
}
例1-9運行結果如圖1-24所示。
圖1-24 例1-9運行結果
· 1.5.3 比較運算符
作用:表達式的比較,并返回一個真值或假值。
表1-6所示為常用的比較運算符,部分使用方法見例1-10。
表1-6 常用的比較運算符
運算符 |
含義 |
示例 |
結果 |
= = |
等于 |
4 = = 3 |
0 |
!= |
不等于 |
4 != 3 |
1 |
< |
小于 |
4 < 3 |
0 |
> |
大于 |
4 > 3 |
1 |
<= |
小于等于 |
4 <= 3 |
0 |
>= |
大于等于 |
4 >= 1 |
1 |
例1-10:比較運算符。
#include <iostream>
using namespace std;
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;
}
注意:C++的比較運算中,“真”用數字“1”來表示,“假”用數字“0”來表示。
例1-10運行結果如圖1-25所示。
圖1-25 例1-10運行結果
· 1.5.4 邏輯運算符
作用:根據表達式的值返回真值或假值。
表1-7所示為常用的邏輯運算符,部分使用方法見例1-11、例1-12、例1-13。
表1-7 常用的邏輯運算符
運算符 |
含義 |
示例 |
結果 |
! |
非 |
!a |
a為假,則!a為真;a為真,則!a為假 |
&& |
與 |
a && b |
a和b都為真,則結果為真,否則為假 |
|| |
或 |
a || b |
a和b有一個為真,則結果為真;二者都為假時,結果為假 |
例1-11:邏輯非運算符。
//邏輯非運算符
#include <iostream>
using namespace std;
int main() {
int a = 10;
cout << !a << endl; // 0
cout << !!a << endl; // 1
return 0;
}
例1-11運行結果如圖1-26所示。
總結:真變假,假變真。
例1-12:邏輯與運算符。
//邏輯與運算符
#include <iostream>
using namespace std;
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-12運行結果如圖1-27所示。
圖1-26 例1-11運行結果
圖1-27 例1-12運行結果
總結:同真為真,其余為假。
例1-13:邏輯或運算符。
//邏輯或運算符
#include <iostream>
using namespace std;
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-13運行結果如圖1-28所示。
圖1-28 例1-13運行結果
總結:同假為假,其余為真。
- Practical Data Analysis Cookbook
- ASP.NET Core:Cloud-ready,Enterprise Web Application Development
- 從零構建知識圖譜:技術、方法與案例
- Oracle Exadata性能優化
- Python GUI Programming Cookbook
- Java EE 7 Performance Tuning and Optimization
- 響應式架構:消息模式Actor實現與Scala、Akka應用集成
- Distributed Computing in Java 9
- Node.js區塊鏈開發
- Learning Unreal Engine Game Development
- Pandas 1.x Cookbook
- Mastering ArcGIS Server Development with JavaScript
- Unity 3D UI Essentials
- Java Web應用開發
- 情境微課開發(第2版)