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ả

[Intel Galileo] Cài đặt Linux Yocto (iot-devkit) lên Intel Galileo

Để hỗ trợ cho nền tảng Galileo của mình, Intel đã cho ra mắt bộ Intel IoT Developer Kit (iot-devkit) bao gồm cả haware (các linh kiện giống như trên nền tảng Arduino) và software (OS, IDE, các tool phát triển,...). Trong bài viết này, mình sẽ hướng dẫn các bạn cài Linux Yocto - là một hệ điều hành thuộc nhánh Software trong iot-devkit.

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

analogWrite()

analogWrite() là lệnh xuất ra từ một chân trên mạch Arduino một mức tín hiệu analog (phát xung PWM). Người ta thường điều khiển mức sáng tối của đèn LED hay hướng quay của động cơ servo bằng cách phát xung PWM như thế này.

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