if

Giới thiệu

Trước khi đọc về lệnh if, các bạn cần xem qua các mục sau:

Các toán tử logic (Boolean operators)

Toán tử
Ý nghĩa
Ví dụ

and (&&)

(a && b) trả về TRUE nếu a và b đều mang giá trị TRUE. Nếu một trong a hoặc b là FALSE thì (a && b) trả về FALSE

or ( || )

Hoặc

(a || b) trả về TRUE nếu có ít nhất 1 trong 2 giá trị a và b là TRUE, trả về FALSE nếu a và b đều FALSE

not ( ! )

Phủ định

nếu a mang giá trị TRUE thì (!a) là FALSE và ngược lại

xor (^)

Loại trừ

(a ^ b) trả về TRUE nếu a và b mang hai giá trị TRUE/FALSE khác nhau, các trường hợp còn lại trả về FALSE

 

Các toán tử so sánh (Comparison operators)

Các toán tử so sánh thường dùng để so sánh 2 số có cùng một kiểu dữ liệu.

 

Toán tử

Ý nghĩa

Ví dụ

==

So sánh bằng

(a == b) trả về TRUE nếu a bằng b và ngược lại

!=

So sánh không bằng

(a != b) trả về TRUE nếu a khác b và ngược lại

So sánh lớn

(a > b) trả về TRUE nếu a lớn hơn b và FALSE nếu a bé hơn hoặc bằng b

So sánh bé

(a < b) trả về TRUE nếu a bé hơn b và FALSE nếu ngược lại

<=

Bé hơn hoặc bằng

(a <= b) tương đương với ((a < b) or (a = b))

>=

Lớn hơn hoặc bằng

(a >= b) tương đương với ((a > b) or (a = b))

 

Câu lệnh if

 

Cú pháp:

if ([biểu thức 1] [toán tử so sánh] [biểu thức 2]) {    //biểu thức điều kiện
    [câu lệnh 1]
} else {
    [câu lệnh 2]
}

Nếu biểu thức điều kiện trả về giá trị TRUE, [câu lệnh 1] sẽ được thực hiện, ngược lại, [câu lệnh 2] sẽ được thực hiện.

 

Ví dụ:

int a = 0;
if (a == 0) {
    a = 10;
} else {
    a = 1;
}
// a = 10

 

Lệnh if không bắt buộc phải có nhóm lệnh nằm sau từ khóa else

int a = 0;

if (a == 0) {

     a = 10;

}

// a = 10

Bạn có thể kết hợp nhiều biểu thức điều kiện khi sử dụng lệnh if. Chú ý rằng mỗi biểu thức con phải được bao bằng một ngoặc tròn và phải luôn có một cặp ngoặc tròn bao toàn bộ biểu thức con.

Cách viết đúng

Cách viết sai

int a = 0;
if ((a == 0) && (a < 1)) {
     a = 10;
}
int a = 0;
if (a == 0) && (a < 1) {
     a = 10;
}

 

int a = 0;
if (a == 0 && a < 1) {
     a = 10;
}

 

 

Chú ý:

  • a = 10; là một câu lệnh gán, giá trị logic của nó luôn là TRUE (vì lệnh gán này luôn thực hiện được)
  • (a == 10) là một biểu thức logic có giá trị TRUE hay FALSE tùy thuộc vào giá trị của biến x.

Nếu bạn viết …

int a = 0;
if (a = 1) {
    a = 10;
}

… thì giá trị của a sẽ bằng 10, vì (a = 1) là một câu lệnh gán, trong trường hợp này nó được xem như một biểu thức logic và luôn trả về giá trị TRUE.

lên
36 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

randomSeed()

Hàm random() luôn trả về một số ngẫu nhiên trong phạm vi cho trước. Giả sử mình gọi hàm này 10 lần, nó sẽ trả về 10 giá trị số nguyên ngẫu nhiên. Nếu gọi nó n lần, random() sẽ trả về n số. Tuy nhiên những giá trị mà nó trả về luôn được biết trước (cố định).

lên
8 thành viên đã đánh giá bài viết này hữu ích.

Giới thiệu về board mạch Intel Galileo

Intel Galileo là một bo mạch vi điều khiển chuyên dùng cho việc phát triển phần mềm và phần cứng tương tự như Andruino hay Raspberry Pi.

Intel Galileo do Intel trưc tiếp phát triển và là sản phẩm đầu tiên được đội ngũ phát triển Arduino chứng nhận đạt chuẩn tương thích với nền tảng Arduino.

lên
6 thành viên đã đánh giá bài viết này hữu ích.