Các toán tử số học trong C#
Toán tử đó là các ký hiệu (+ - * / % && ! ...), được được dùng để thi hành các tính toán về toán học hay biểu thức logic.
Trong C# nó hỗ trợ những toán tử về số học sau:
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
+ |
Phép cộng | a + b |
- |
Phép trừ | a - b |
* |
Phép nhân | a * b |
/ |
Phép chia | a / b |
% |
Phép chia lấy dư (modules) | a % b |
Phép cộng +
, phép trừ -
int a = 28; int b = 10; //Phép cộng Console.WriteLine(a + b); // In ra: 38 Console.WriteLine(a - b); // In ra: 18
Phép nhân *
float a = 1.2f; int b = 3; Console.WriteLine(a * b); // In ra 3.6
Phép chia /
float a = 1.2f; int b = 3; Console.WriteLine(a / b); // In ra 0.4
Nếu số chia và số bị chia thì phép toán /
sẽ lấy phần nguyên. Nếu muốn lấy giá trị thực chính xác,
cần chuyển số chia, hoặc bị chia thành số thực.
int a = 10; int b = 3; Console.WriteLine(a / b); // In ra 3 // Chuyển số chia thành số thực Console.WriteLine(a / (float)b); // In ra 3.333333
Phép chia lấy dư %
int a = 8; int b = 3; Console.WriteLine(a % b); // In ra 2
Thứ tự ưu tiên của các toán tử trong biểu thức
Một biểu thức có thể có nhiều số hạng, kết hợp lại bởi nhiều toán tử và ký hiệu ( )
,
Lúc này cần biết thứ tự ưu tiên để tính được chính xác giá trị biểu thức.
Trong biểu thức, toán tử nào có độ ưu tiên cao hơn sẽ được tính trước.
Độ ưu tiên từ cao xuống thấp là: 1 trong ngoặc ()
,
2 số mũ - căn,
3 nhân hoặc chia * /,
4 cộng hoặc trừ + -
Khi độ ưu tiên ngang nhau, sẽ tính từ trái qua phải
Console.WriteLine(5 + 3 * 2); // 11 Console.WriteLine(6 / 2 + 3 * 2); // 9 Console.WriteLine(6 / (2 + 3) * 2); // 2
Toán tử gán trong C#
Toán tử gán, dùng để gán giá trị (biểu thức giá trị) vào biến. Các toán tử gán gồm:
Toán tử | Diễn tả | Ví dụ |
---|---|---|
= |
Toán tử gán: Gán biểu thức bên phải của = vào biến bên trái
|
int x = 10 + 12; // x bằng 22 |
+= |
Toán tử công thêm: Công thêm vào biến bên trái += giá trị bên phải
|
int x = 10; x += 2; // x bằng 12 |
-= |
Toán tử trừ bớt: Bớt đi giá trị biến bên trái của -= một lượng bằng biểu thức bên phải
|
int c = 10; c -= 3; // c = 7 |
*= |
Toán tử nhân với: a *= b tương đương a = a * b; |
int x = 2; x *= 3; //x = 6 |
/= |
Toán tử chia cho: a / b tương đương a = a / b |
int a = 6; a /= 2; // a = 3 |
%= |
Toán tử gán module: a %=b tương đương a = a % b; |
int a = 10; a %= 3; // a = 1 |
Toán tử tăng ++ và giảm -- trong C#
Toán tử ++
thêm vào biến 1 đơn vị, còn --
bớt đi một đơn vị, toán tử này có
thể viết bên trái hoặc bên phải biến.
int a = 10; a++; // a là 11 (thêm 1) ++a; // a là 12 (thêm 1) a--; // a là 11 (bớt 1) --a; // a là 10 (bớt 1)
Nếu biến độc lập, thì việc viết ++
hoặc --
bên trái hay bên phải không có khác biệt.
Tuy nhiên trong biểu thức thì có sự khác biệt.
Nếu viết trước ++x
thì toán tử ++
thi hành trước rồi mới áp dụng vào biểu thức,
nếu viết sau dạng x++
thì biểu thức thi hành xong mới đến ++
(tương tự với --
)
Ví dụ ++
thi hành sau do viết sau biến
int a = 5; int b = 2 * a++; // b = 10; a = 6
Ví dụ ++
sẽ thi hành trước
int a = 5; int b = 2 * ++a; // b = 12; a = 6
Source code: CS003_ArithmeticAssignment (Git), hoặc tải ex003-1