Lập Trình C: Độ ưu Tiên Phép Toán | V1Study

1. Phép toán Số học:

Các phép toán số học sẽ có sự ưu tiên thực hiện được thể hiện dưới đây:

+ Các phép Đảo dấu (-), ++ và -- được thực hiện trước tiên (đây là những phép toán một ngôi)

+ Sau đó đến các phép *, / và %

+ Rồi đến các phép + và - (phép Trừ)

+ Sau cùng là phép Gán (=).

Ví dụ:

-8 * 4 % 2 - 3 + 6.0 / 12 [-8] * 4 % 2 - 3 + 6.0 / 12 [-8 * 4] % 2 - 3 + 6.0 / 12 [-32 % 2] - 3 + 6.0 / 12 0 - 3 + [6.0 / 12] [0 - 3] + 0.5 [-3 + 0.5] -2.5

2. Phép toán Logic:

Mức độ ưu tiến của các phép toán Logic được thể hiện như dưới đây:

! : có mức ưu tiên cao nhất (được thực hiện trước tiên)

&& : có mức ưu tiên sau !

|| : có mức ưu tiên sau &&

Trong trường hợp có nhiều phép toán Logic trong một biểu thức điều kiện, thì ta áp dụng quy tắc tính từ phải sang trái.

Ví dụ: trong các ví dụ dưới đây, False đại diện cho giá trị 0, True đại diện cho giá trị khác không (!0)

False || True && !False && True False || True && [!False] && True False || True && [True && True] False || [True && True] [False || True] True

3. Độ ưu tiên giữa các loại phép toán:

Mỗi loại phép toán khác nhau lại có mức ưu tiên khác nhau. Mức ưu tiên sẽ được thể hiện như dưới đây:

Các phép toán Số học sẽ được ưu tiên thực hiện trước

Sau đó đến các phép toán So sánh (hay phép toán diều kiện hoặc quan hệ)

Sau đó đến các phép toán Logic

Số học > So sánh > Logic

Ví dụ :

2*3+4/2 > 3 && 3<5 || 10<9 [2*3+4/2] > 3 && 3<5 || 10<9 [[2*3]+[4/2]] > 3 && 3<5 || 10<9 [6+2] >3 && 3<5 || 10<9 [8 >3] && [3<5] || [10<9] True && True || False [True && True] || False True || False True

4. Thay đổi độ ưu tiên:

Nếu muốn thay đổi độ ưu tiên bạn sử dụng cặp ngoặc tròn () bao ngoài phần biểu thức muốn tính toán trước.

Lưu ý: nếu có nhiều cặp ngoặc tròn lồng nhau thì biểu thức nằm trong cặp ngoặc tròn nằm trong cùng sẽ được thực hiện trước tiên.

Ví dụ :

5+9*3-4 > 10 && (2+2^4-8/4 > 6 || (2<6 && 10>11)) 5+9*3-4 > 10 && (2+2^4-8/4 > 6 || ([2<6 && 10>11])) 5+9*3-4 > 10 && (2+2^4-8/4 > 6 || ([True && False])) 5+9*3-4 > 10 && ([2+2^4-8/4 > 6 || False]) 5+9*3-4 >10 && ([2+16-8/4 > 6 || False]) 5+9*3-4 > 10 && ([2+16-2 > 6 || False]) 5+9*3-4 > 10 && ([18-2 > 6 || False]) 5+9*3-4 > 10 && ([16 > 6 || False]) 5+9*3-4 > 10 && ([True || False]) [5+9*3-4] > 10 && True [5+27-4] >10 && True [32-4] >10 && True [28 >10] && True True && True True

Kết quả của biểu thức trên được thể hiện trong ngôn ngữ C như hình dưới đây:

Ngôn ngữ C: Phép toán

Từ khóa » Thứ Tự ưu Tiên Phép Toán Trong C