Thứ tự thực hiện của các phép quan hệ

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

Giống nh các phép toán học đ: nói trong bài trớc, các phép quan hệ cũng có các quyền u tiên riêng, quyết định thứ tự mà chúng đợc thực hiện trong một biểu thức có nhiều phép toán. Ngoài ra, cũng có thể dùng các dấu ngoặc để thay đổi thứ tự thực hiện trong một biểu thức có dùng các phép quan hệ.

Trớc hết, tất cả các phép quan hệ đều có quyền u tiên thấp hơn các phép toán học. Vì vậy, nếu viết

thì 2 đợc cộng với x trớc, sau đó, kết qủa này mới đợc đem so sánh với y. Mệnh đề trên t- ơng đơng với

if ( (x + 2 ) > y)

trong đó, dấu ngoặc đợc sử dụng để làm rõ thêm thứ tự thực hiện của các phép trong biểu thức.

Thứ tự u tiên của các phép quan hệ: Phép toán Quyền u tiên tơng đối < <= > >= 1

!= == 2 Vì vậy,

x == y > z; là tơng đơng với x == ( y > z );

bởi vì, đầu tiên C tính biểu thức y > z để cho ra một giá trị hoặc là 0 hoặc là 1. Tiếp theo, C xác định xem x có bằng giá trị thu đợc từ bớc một hay không.

Không nên dùng câu lệnh gán trong các câu lệnh if. Điều đó có thể làm cho ngời đọc chơng trình dễ nhầm lẫn. Họ có thể hiểu nhầm là chơng trình viết không đúng và sửa lại phép gán thành phép bằng logic. Đồng thơì cũng không nên dùng phép "không bằng" (!=) trong một câu lệnh if có chứa một mệnh đề else. Tốt hơn cả là nên dùng phép "bằng" (==) cùng với else. Ví dụ, câu lệnh

if (x != y ) câu_lệnh1; else

câu_lệnh2;

nên thay bằng câu lệnh sau thì dễ hiểu hơn if ( x = y )

câu_lệnh2; else

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