Biểu thức và thứ tự ưu tiên của các toán tử trong biểu thức

3. Một số ví dụ viết biểu thức cho những mệnh đề

1. Biểu thức (expression) là gì?

Biểu thức được tạo thành từ toán tử ( Operator ) và toán hạng ( Operand ). Toán hạng hoàn toàn có thể là biến, hằng, lời gọi hàm / thủ tục, …Biểu thức là gìBiểu thức được tạo thành từ toán tử và toán hạng

Ví dụ:

– Biểu thức : X + Y có X, Y là toán hạng, + là toán tử. + là toán tử hai ngôi vì có hai toán hạng .

– Biểu thức: ! (A && B) có (A && B) là biểu thức con, ! là toán tử một ngôi vì chỉ cần 1 toán hạng, && là toán tử hai ngôi với hai toán hạng là A và B.

– Chúng ta thường viết gọn biểu thức như 4 y ( 3-2 ) y + 7. Trong lập trình, biểu thức này cần được tiến hành vừa đủ là 4 * y * ( 3-2 ) * y + 7 .

Lưu ý: Toán hạng phải có kiểu tương thích với kiểu mà toán tử có thể thực hiện được.

2. Thứ tự ưu tiên của các toán tử trong biểu thức

Trong một biểu thức hoàn toàn có thể có nhiều toán tử, câu hỏi đặt ra là toán tử nào sẽ được thực thi trước ? Thứ tự triển khai của những toán tử hoàn toàn có thể tác động ảnh hưởng đến tác dụng của biểu thức .

Ngôn ngữ lập trình C++ đã quy định sẵn các thứ tự ưu tiên của các toán tử trong biểu thức.

Thứ tự ưu tiên Toán tử Tính liên kết
1 (), [], ++ (tăng sau, a++), – -(giảm sau, a- -) Từ trái sang phải
2 !, ~, ++ (tăng trước, ++a), – -(giảm trước, – -a) Từ phải sang trái
3 *, /, % Từ trái sang phải
4 +, – Từ trái sang phải
5 <<, >> Từ trái sang phải
6 <, <=, >, >= Từ trái sang phải
7 ==, != Từ trái sang phải
8 & Từ trái sang phải
9 ^ Từ trái sang phải
10 | Từ trái sang phải
11 && Từ trái sang phải
12 || Từ trái sang phải
13 =, +=, -=, *=, /=, %= Từ phải sang trái

Quy tắc thực hiện phép toán trong biểu thức

– Thực hiện biểu thức trong ngoặc ( ) sâu nhất trước .– Thực hiện theo thứ tự ưu tiên những toán tử .– Có thể tự chủ động thêm ( )

Ví dụ thứ tự ưu tiên các toán tử trong biểu thức:

– Biểu thức: n = 2 + 3 * 5 => n = 2 + (3 * 5)
– Biểu thức: a > 1 && b < 2 => (a > 1) && (b < 2)

3. Một số ví dụ viết biểu thức cho các mệnh đề

– Mệnh đề: x lớn hơn hay bằng 3 thì biểu thức là x >= 3

– Mệnh đề: a và b cùng dấu thì biểu thức là ((a>0) && (b>0)) || ((a<0) && (b<0)) hoặc (a>0 && b>0) || (a<0 && b<0)
– Mệnh đề: p bằng q bằng r thì biểu thức là (p == q) && (q == r) hoặc (p == q && q == r)
– Mệnh đề: –5 < x < 5 thì biểu thức là (x > –5) && (x < 5) hoặc (x > –5 && x < 5)

Ngoài ra, còn có rất nhiều mệnh đề cần được chuyển thành biểu thức để đưa vào lập trình. Các bạn sẽ dần được tìm hiểu và khám phá trong những bài sau .

5/5 – ( 1 bầu chọn )