Trong bài học này, bạn đọc sẽ cùng Lập trình không khó chuyển sang phần kiến thức “toán tử trong C“. Toán tử là các ký hiệu được dùng để thực hiện một phép toán trong ngôn ngữ lập trình. Chúng ta sẽ cùng nhau đi qua từng loại toán tử nhé.
Các loại toán tử trong C
Nội dung cụ thể chúng ta sẽ học trong 3 bài học như sau:
- Bài 8. Toán tử số học
- Bài 9. Toán tử gán và toán tử tăng, giảm
- Bài 10. Toán tử logic và toán tử quan hệ
Toán tử số học (Arithmetic Operators)
Toán tử số học là một loại toán tử trong C: Được sử dụng để thực hiện các phép toán: cộng, trừ, nhân, chia,… trên các giá trị số (biến và hằng). Đây là các toán tử cần sự tham gia của 2 giá trị số nên được phân loại là các toán tử 2 ngôi.
Toán tử | Ý nghĩa |
---|---|
+ | phép toán cộng |
– | phép toán trừ |
* | phép toán nhân |
/ | phép toán chia |
% | phép toán lấy số dư(chỉ áp dụng cho số nguyên) |
Video hướng dẫn về toán tử số học
Source code minh họa
#include <stdio.h> int main(){ int a, b; printf("nNhap a = "); scanf("%d", &a); // Lưu ý nhập b != 0 printf("nNhap b = "); scanf("%d", &b); // Phép (+) int sum = a + b; printf("n%d + %d = %d", a, b, sum); // Phép (-) int sub = a - b; printf("n%d - %d = %d", a, b, sub); // Phép (*) int mul = a * b; printf("n%d * %d = %d", a, b, mul); // Phép (/) float div = a / (float)b; // float div = a / b * 1.0; // float div = (float)a / b; // float div = (float)(a / b); // do not use printf("n%d / %d = %f", a, b, div); // Phép (%) int mod = a % b; printf("n%d %% %d = %d", a, b, mod); }
Kết quả chạy chương trình:
PS G:c_courcesday_8> .ArithmeticOperators.exe Nhap a = 8 Nhap b = 3 8 + 3 = 11 8 - 3 = 5 8 * 3 = 24 8 / 3 = 2.666667 8 % 3 = 2
Toán tử tăng, giảm (Increment and Decrement)
Toán tử tăng, giảm là 1 loại toán tử trong C và là các toán tử 1 ngôi, bao gồm 2 toán tử sau:
- Toán tử
++
: Tăng giá trị lên 1 đơn vị - Toán tử
--
: Giảm giá trị đi 1 đơn vị
Các lưu ý khi sử dụng và khái niệm về tiền tố, hậu tố bạn xem video bài số 9 sau đây.
Code minh họa:
#include <stdio.h> int main(){ int a; printf("nNhap a = "); scanf("%d", &a); // Toán tử ++ ++a; printf("na++ = %d", a); // // Toán tử -- --a; printf("na-- = %d", a); a = 5; printf("na = %d", a); // Tiền tố và hậu tố a++ và ++a printf("n++a = %d", ++a); a = 5; printf("n--a = %d", --a); a = 5; printf("na++ = %d", a++); a = 5; printf("na-- = %d", a--); }
Kết quả của chương trình:
Nhap a = 5 ++a = 6 --a = 4 a++ = 5 a-- = 5
Toán tử gán (Assignment Operators)
Toán tử gán là toán tử trong ngôn ngữ C được dùng để gán giá trị cho 1 biến trong ngôn ngữ lập trình C. Bao gồm các toán tử sau:
Toán tử | Viết gọn | Viết đầy đủ |
---|---|---|
= | a = b | a = b |
+= | a += b | a = a+b |
-= | a -= b | a = a-b |
*= | a *= b | a = a*b |
/= | a /= b | a = a/b |
%= | a %= b | a = a%b |
Code minh họa:
#include <stdio.h> int main(){ int a = 5, c; c = a; // c is 5 printf("c = %dn", c); c += a; // c is 10 => c = c + a printf("c = %dn", c); c -= a; // c is 5 => c = c - a printf("c = %dn", c); c *= a; // c is 25 => c = c * a printf("c = %dn", c); c /= a; // c is 5 => c = c / a printf("c = %dn", c); c %= a; // c = 0 => c = c % a printf("c = %dn", c); // return 0; }
Kết quả của chương trình:
PS G:c_courcesday_9> .Assignment.exe c = 5 c = 10 c = 5 c = 25 c = 5 c = 0
Toán tử quan hệ (Relational Operators)
Toán tử quan hệ là một loại toán tử trong C được dùng để thực hiện các phép kiểm tra mối quan hệ giữa 2 toán hạng. Nếu quan hệ kiểm tra là đúng thì nó trả về giá trị true
và trả về false
trong trường hợp ngược lại.
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
== | so sánh bằng | 7 == 3 cho kết quả là 0 |
> | so sánh lớn hơn | 5 > 1 cho kết quả là 1 |
< | so sánh nhỏ hơn | 5 < 2 cho kết quả là 0 |
!= | so sánh khác | 5 != 4 cho kết quả là 1 |
>= | lớn hơn hoặc bằng | 8 >= 3 cho kết quả là 1 |
<= | nhỏ hơn hoặc bằng | 5 <= 0 cho kết quả là 0 |
Video bài học
Code minh họa:
#include <stdio.h> int main(){ int a = 5, b = 5, c = 10; printf("%d == %d is %d n", a, b, a == b); printf("%d == %d is %d n", a, c, a == c); printf("%d > %d is %d n", a, b, a > b); printf("%d > %d is %d n", a, c, a > c); printf("%d < %d is %d n", a, b, a < b); printf("%d < %d is %d n", a, c, a < c); printf("%d != %d is %d n", a, b, a != b); printf("%d != %d is %d n", a, c, a != c); printf("%d >= %d is %d n", a, b, a >= b); printf("%d >= %d is %d n", a, c, a >= c); printf("%d <= %d is %d n", a, b, a <= b); printf("%d <= %d is %d n", a, c, a <= c); }
Kết quả chạy:
PS G:c_courcesday_10> g++ .Relation.cpp -o .Relation PS G:c_courcesday_10> .Relation.exe 5 == 5 is 1 5 == 10 is 0 5 > 5 is 0 5 > 10 is 0 5 < 5 is 0 5 < 10 is 1 5 != 5 is 0 5 != 10 is 1 5 >= 5 is 1 5 >= 10 is 0 5 <= 5 is 1 5 <= 10 is 1
Toán tử logic (Logical Operators)
Toán tử logic là một toán tử trong C. Toán tử logic bao gồm các toán tử sau:
- Toán tử
&&
: là toán tử AND, trả vềtrue
khi và chỉ khi tất cả các toán hạng đều đúng. - Toán tử
||
: là toán tử OR, trả vềtrue
khi có ít nhất 1 toán hạng đúng. - Toán tử
!
: là toán tử NOT, phủ định giá trị của toán hạng.
Code minh họa:
#include <stdio.h> int main(){ int a = 5; printf("n%d", (a > 0 && a % 2 == 0)); // 1 && 0 = 0 printf("n%d", (a % 2 == 0 || a % 5 == 0)); // 0 || 1 = 1 printf("n%d", !(a == 5)); // Tại sao không dùng & hay |? int b = 5; // dấu || printf("n%d", (b == 5 || b++ > 0)); printf("nb = %d", b); b = 5; printf("n%d", (b == 5 | b++ > 0)); printf("nb = %d", b); // dấu || b = 5; printf("n%d", (b != 5 && b++ > 0)); printf("nb = %d", b); b = 5; printf("n%d", (b != 5 & b++ > 0)); printf("nb = %d", b); }
Kết quả chạy:
PS G:c_courcesday_10> .Logical.exe 0 1 0 1 b = 5 1 b = 6 0
Các toán tử khác
Ngoài các toán tử trên, chúng ta còn có các toán tử khác:
- Toán tử bit (Bitwise Operators), nội dung này là phần kiến thức khó. Chúng ta chưa học trong bài này.
- Toán tử “phảy” (Comma Operator)
int a, c = 5, d;
- Toán tử sizeof (sizeof Operator), nội dung này mình đã trình bày trong bài Kiểu dữ liệu trong C
Để lại một bình luận