Tính giá trị các biểu thức quan hệ

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

Các biểu thức quan hệ cho ra một giá tri hoặc sai (0) hoặc đúng (1). Dù rằng các biểu thức quan hệ đợc dùng phổ biến nhất trong các câu lệnh if và các cấu trúc điều kiện khác, chúng còn đợc sử dụng nh các giá trị số thuần tuý. Chơng trình 4.5 sau đây minh họa cho cách dùng này.

Chơng trình 4.5. Trình diễn cách tính các biểu thức quan hệ

/* Minh họa cách tính các biểu thức quan hệ */ #include <stdio.h>

int a; main()

{

a = (5 == 5); /* cho ra giá trị 1 */ printf("\na = (5 == 5)\na = %d", a); a = (5 != 5); /* cho ra giá trị 0 */ printf("\na = (5 != 5)\na = %d", a);

a = (12 == 12) + (5 != 1); /* cho ra 1 + 1 */ printf("\na = (12 == 12) + (5 != 1)\na = %d", a); return 0;

}

a = (5 == 5) a = 1 a = (5 != 5) a = 0 a = (12 == 12) + (5 != 1) a = 2

Xem ra kết qủa này mới đầu có vẻ hơi lạ. Khi dùng các biểu thức quan hệ, có một lỗi mà ngời ta hay mắc phải là chỉ dùng một dấu = cho phép quan hệ bằng. Biểu thức

x = 5

cho giá trị 5 đồng thời gán 5 cho x. Thế nhng, biểu thức x == 5

thì lại cho ra 0 hoặc 1 (phụ thuộc vào giá trị của x có bằng 5 hay không) và không làm thay đổi giá trị của x. Nếu do sơ xuất mà viết là

if (x = 5)

printf("x bằng 5");

thì thông báo này luôn luôn đợc in ra vì biểu thức đợc kiểm tra ở câu lệnh if bao giờ cũng nhận giá trị đúng bất kể x có bằng 5 hay không.

Cuối cùng, cần phải nhắc lại một lần nữa là, các phép quan hệ đợc dùng để tạo lập các mối quan hệ giữa các biểu thức. Một biểu thức quan hệ cho ra một giá trị số, bằng 0 (nếu biểu thức có nghĩa là sai) hoặc bằng 1 (nếu biểu thức có nghĩa là đúng).

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