Toán tử hay nói một cách đơn giản là những ký hiệu nhằm tính toán, so sánh...Chúng ta sẽ phân tích những toán tử chính trong C++.
Toán tử số học.Toán tử toán học bao gồm các phép toán bạn thường sử dụng : +, -, *, /, %. Trong lập trình bạn cần chú ý phép nhân sẽ là dấu *, phép chia là dấu / và phép chia dư là %.
Thứ
tự ưu tiên các toán tử trong biểu thức: nhân chia và chia dư trước,
cộng trừ sau, cùng mức ưu tiên thì thực hiện từ trái qua phải. Dấu đóng
mở ngoặc có mức độ ưu tiên cao nhất, sẽ đảm bảo được biểu thức của bạn
được tính toán như bạn mong muốn. Giả sử biến A = 10 và biến B = 20 trong ví dụ các bảng bên dưới:
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
+ | Phép cộng | A + B sẽ cho kết quả là 30 |
- | Phép trừ | A - B sẽ cho kết quả là -10 |
* | Phép nhân | A * B sẽ cho kết quả là 200 |
/ | Phép chia lấy phần nguyên hai toán hạng | B / A sẽ cho kết quả là 2 |
% | Phép chia lấy phần dư | B % A sẽ cho kết quả là 0 |
++ | Tăng giá trị toán hạng thêm 1 đơn vị | A++ sẽ cho kết quả là 11 |
-- | Giảm giá trị toán hạng một đơn vị | A-- sẽ cho kết quả là 9 |
Toán tử so sánh.
Các toán tử so sánh được sử dụng kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử so sánh là những giá trị Boolean (logic “true” hoặc “false”). Bảng bên dưới vẫn sử dụng giả sử biến A = 10 và biến B = 20
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
== | Kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu bằng thì điều kiện là true. | (A == B) FALSE |
!= | Kiểm tra 2 toán hạng có giá trị khác nhau hay không. Nếu không bằng thì điều kiện là true. | (A != B) TRUE |
> | Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn toán hạng bên phải hay không. Nếu lớn hơn thì điều kiện là true. | (A > B) FALSE |
< | Kiểm tra nếu toán hạng bên trái nhỏ hơn toán hạng bên phải hay không. Nếu nhỏ hơn thì là true. | (A < B) TRUE |
>= | Kiểm tra nếu toán hạng bên trái có giá trị lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không. Nếu đúng là true. | (A >= B) FALSE |
<= | Kiểm tra nếu toán hạng bên trái có giá trị nhỏ hơn hoặc bằng toán hạng bên phải hay không. Nếu đúng là true. | (A <= B) TRUE |
Toán tử logic.
Chúng
ta có 3 toán tử logic trong ngôn ngữ C. Toán tử logic trong C được sử
dụng để kết hợp nhiều điều kiện. Toán tử logic trả về 0 hoặc 1, tùy
thuộc vào kết quả biểu thức là đúng hay sai. Trong lập trình C để ra
quyết định, chúng ta sử dụng các toán tử logic.
AND ( && )
OR ( || )
NOT ( ! )
Toán tử | Ý nghĩa | Cách hoạt động | Ví dụ |
&& | Toán tử AND (Và) | Đúng khi mọi toán hạng có giá trị đúng, sai trong các trường hợp còn lại | (10 < 20) && (20 == 20) : Đúng |
|| | Toán tử OR (Hoặc) | Sai khi mọi toán hạng có giá trị sai, đúng trong các trường hợp còn lại | (10 > 30) && (30 == 30) : Đúng |
! | Toán tử NOT (Phủ định) | Phủ định của đúng là sai, phủ định của sai là đúng | !(20 == 20) : Sai |
Chúng ta sẽ ví dụ một tình huống thực tế:
Giả sử bạn có một quy tắc cá nhân là nếu bên ngoài trời nắng VÀ bạn không có lớp học
thì bạn sẽ đi biển. Khám phá khi nào bạn có và không được đi đến bãi
biển theo quy tắc này. Tức là chúng ta có thể dùng toán tử AND (&&) để xét xem chúng ta Được làm hay Không được làm một cái gì.
Ví dụ khác:
Nếu có hai số nguyên bất kỳ a và b tượng trưng cho tiền lương của hai người anh Nguyễn Văn A và anh Lê Văn B, giả sử mức lương cao là trên 10 triệu đồng, chúng ta sẽ có các trường hợp:
- Nếu a lớn hơn 10tr và b cũng lớn hơn 10tr: Kết luận cả hai anh A và B đều có lương cao.
- Nếu a lớn hơn 10tr hoặc b lớn hơn 10tr: Kết luận một trong hai anh có lương cao.
- Nếu a không lớn hơn 10tr và b cũng không lớn hơn 10tr: Kết luận cả hai hai anh đều có lương không cao.
Tức là chúng ta có thể dùng toán tử Logic để xét xem một nhóm người có đạt một tiêu chí nào hay không: Lương có cao không, công việc có hoàn thành không, sức lao động còn không...
Toán tử tăng giảm.
Để
tăng giảm giá trị của biến lên 1 đơn vị bạn có thể sử dụng toán từ ++,
hoặc giảm giá trị của biến đi 1 đơn vị bằng toán tử -- .
++a : Tăng trước
a++ : Tăng sau
--a : Giảm trước
a-- : Giảm sau
Vẫn sử dụng giả sử biến A = 10 và biến B = 20
A++ sẽ cho kết quả là 11
A-- sẽ cho kết quả là 9
Toán tử gán.
Toán tử gán (dấu = khi gán đơn giản) được sử dụng trong các bài học trước khi bạn muốn gán giá trị cho biến
Cú pháp gán đơn giản : X = Y
Ý nghĩa : Gán giá trị của toán hạng Y cho toán hạng X
Ngoài ra còn nhiều toán tử gán khác, hiện tại chúng ta chỉ tham khảo:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
= | Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái. | C = A + B sẽ gán giá trị của A + B vào trong C |
+= | Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái. | C += A tương đương với C = C + A |
-= | Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái. | C -= A tương đương với C = C - A |
*= | Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái. | C *= A tương đương với C = C * A |
/= | Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái. | C /= A tương đương với C = C / A |
%= | Lấy phần dư của phép chia toán hạng trái cho toán hạng phải và gán cho toán hạng trái. | C %= A tương đương với C = C % A |
<<= | Dịch trái toán hạng trái sang số vị trí là giá trị toán hạng phải. | C <<= 2 tương đương với C = C << 2 |
>>= | Dịch phải toán hạng trái sang số vị trí là giá trị toán hạng phải. | C >>= 2 tương đương với C = C >> 2 |
&= | Phép AND bit | C &= 2 tương đương với C = C & 2 |
^= | Phép OR loại trừ bit | C ^= 2 tương đương với C = C ^ 2 |
|= | Phép OR bit. | C |= 2 tương đương với C = C | 2 |
Toán Tử Điều Kiện (3 Ngôi).
Cú pháp : [Biểu thức so sánh] ? [Giá trị trả về 1] : [Giá trị trả về 2];
Ý
nghĩa : Phần thứ nhất trong toán tử này sẽ có giá trị đúng hoặc sai,
nếu phần này có giá trị đúng thì biểu thức sẽ trả về giá trị 1, ngược
lại nếu phần này có giá trị sai thì biểu thức sẽ trả về giá trị 2
Ví dụ:
Bài học đã quá dài ? Nghỉ thôi : Học tiếp
Nếu bài học quá dài là đúng: Nghỉ học
Nếu bài học quá dài là sai: Học tiếp
Thứ tự ưu tiên.
Để thay đổi thứ tự ưu tiên trên một biểu thức, chúng ta có thể sử dụng dấu ngoặc đơn ():
Phần được giới hạn trong ngoặc đơn được thực hiện trước.
Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong sẽ thực thi trước, sau đó đến các vòng phía ngoài.
Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ nguyên tác dụng: Nhân chia trước, công trừ sau...
Ví
dụ, x = 10 + 5 * 2; ở đây, x sẽ được gán giá trị 20, chứ không phải 30
bởi vì toán tử * có quyền ưu tiên cao hơn toán tử +, vì thế đầu tiên nó
thực hiện phép nhân 5 * 2 và sau đó thêm với 10.
Để thay đổi thứ tự ưu tiên ta dùng dấu (), ví dụ, x = (10 + 5) * 2; bây giờ x = 30.
Tới đây, chúng ta có thể thấy về mặt toán tử thì C và C++ đều sử dụng tương tự nhau. Chúng ta sẽ tiếp tục về toán tử trong phần tiếp theo.
Không có nhận xét nào:
Đăng nhận xét