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ả

Transistor (BJT) và ứng dụng trong điều khiển động cơ DC

Trong điện tử, transistor (transfer-resistor) là một linh kiện bán dẫn. Khi hoạt động trong mạch điện, transistor có vai trò như một cái van cách li hay điều khiển dòng điện, điện áp trong mạch. Từ vai trò này, transistor được ứng dụng rộng rãi. Trong bài viết này, tôi chỉ trình bày những khía cạnh cơ bản và đơn giản nhất của transistor, phù hợp với nhu cầu kiến thức của người dùng Arduino. Một số thuật ngữ, cách giải thích về transistor cũng được tôi cố gắng tinh giảm để phù hợp với đối tượng người dùng Arduino hơn so với người chuyên về điện tử. 

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

Intel Galileo - Dữ liệu kĩ thuật

Galileo là một bo mạch vi điều khiển dựa trên bộ xử lí ứng dụng Intel Quark SoC X1000 - một bộ xử lí thuộc dòng Pentium 32bit system-on-chip (tích hợp tất cả các thành phần hệ thống vào trong 1 chip xử lí duy nhất). Galileo là bo mạch tương thích với Arduino đầu tiên dựa trên Intel Architecture. Cả phần cứng lẫn phần mềm của Galileo đều tương thích với các Arduino Shield vốn được thiết kế cho Arduino UNO R3 với chuẩn chân cắm Arduino 1.0 pinout.

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