Thứ tự thực hiện các phép toán và các dấu ngoặc

Một phần của tài liệu NGÔN NGỮ LA65P5 TRỈNH C pot (Trang 30 - 31)

Trong một biểu thức có chứa từ hai phép toán trở lên thì thứ tự để thực hiện chúng nh thế nào? Tầm quan trọng của câu hỏi này có thể đợc minh họa bằng câu lệnh gán sau đây: x = 4 + 5 * 3;

Nếu phép cộng đợc thực hiện trớc, thì x = 9 *3;

và x đợc gán giá trị 27. Ngợc lại, nếu phép nhân đợc thực hiện trớc, thì lại khác: x = 4 + 15;

và x đợc gán giá trị 19. Nh vậy là cần phải có các luật nào đó về thứ tự thực hiện của các phép toán trong một biểu thức. Thứ tự này đợc gọi là quyền u tiên của các phép toán. Mỗi phép toán đều có một quyền u tiên xác định. Khi một biểu thức đợc tính toán, các phép toán có quyền u tiên cao hơn sẽ đợc thực hiện trớc.

Thứ tự thực hiện của các phép toán là: Tăng và giảm đơn nguyên.

Cộng và trừ

Nếu một biểu thức chứa từ hai phép toán trở lên có cùng một hạng u tiên, thì chúng đợc thực hiện theo thứ tự từ trái sang phải.

Trở lại ví dụ trớc, câu lệnh x = 4 + 5 *3; gán giá trị 19 cho x bởi vì phép nhân đợc thực hiện trớc phép cộng.

Vẫn ví dụ này, nếu muốn cộng 4 với 5 sau đó mới nhân với 3 thì phải làm nh thế nào? C dùng dấu ngoặc để điều chỉnh lại thứ tự thực hiện phép toán. Một biểu thức con đợc đóng trong các dấu ngoặc đợc tính trớc cho dù nó chứa phép toán nào. Vì vậy, để thực hiện ý định trên, có thể viết:

x = (4 + 5) * 3;

Biểu thức con 4 + 5 trong các dấu ngoặc đơn đợc tính trớc và vì thế giá trị đợc gán cho x là 27.

Có thể dùng nhiều cặp dấu ngoặc lồng nhau trong một biểu thức. Khi các dấu ngoặc lồng nhau, việc tính toán đợc thực hiện từ biểu thức nằm trong cùng, sau đó tiến dần ra ngoài. H:y xét biểu thức:

x = 25 - (2 * (10 + (8 / 2)) Biểu thức này đợc xử lý theo các bớc sau:

Biểu thức trong nhất, 8 / 2, đợc tính trớc nhất và cho ra giá trị 4. 25 - (2 * (10 + 4))

Chuyển ra ngoài, biểu thức tiếp theo, 10 + 4, đợc tính và cho ra giá trị 14. 25 - (2 * 14)

Biểu thức ngoài cùng, 2 * 14, đợc tính và cho giá trị 28. 25 - 28

Biểu thức cuối cùng, 25 - 28, đợc tính và gán giá trị -3 cho biến x. x = -3

Một phần của tài liệu NGÔN NGỮ LA65P5 TRỈNH C pot (Trang 30 - 31)