Bài 9: Cấu trúc rẽ nhánh if…else trong Javascript
Câu lệnh if thực hiện một câu lệnh nếu một điều kiện được chỉ định là đúng. Nếu điều kiện là sai, một câu lệnh khác có thể được thực hiện.
Nội dung của bài
Syntax
if (condition) {
statement1
} else {
statement2
}
- condition: Một biểu thức với giá trị Boolean (true/false)
- statement1: Thực thi nếu condition là true
- statement2: Thực thi nếu condition là false
Nested
Nhiều câu lệnh if … else có thể được lồng vào nhau để tạo ra một mệnh đề if:
if (condition1)
statement1
else if (condition2)
statement2
else if (condition3)
statement3
...
else
statementN
Đây là cách chúng hoạt động:
if (condition1)
statement1
else
if (condition2)
statement2
else
if (condition3)
...
Ternary (Short if else statement)
Nếu condition là đúng, statement1 được thực thi, nếu sai thì statement2 sẽ chạy.
condition ? statement1 : statement2
Ví dụ
function testNum(a) {
let result;
if (a > 0) {
result = 'positive';
} else {
result = 'NOT positive';
}
return result;
}
console.log(testNum(-5));
// expected output: "NOT positive"
Trong ví dụ trên, nếu a > 0
là đúng, câu lệnh trong biểu thức if sẽ được thực thi, giá trị của result
được gán bằng positive
. Ngược lại nếu a > 0 là sai, câu lệnh trong biểu thức else
sẽ được thực thi, giá trị của result
được gán bằng NOT positive
.
Ta có thể sử dụng cấu trúc ternary như bên dưới, code sẽ ngắn gọn hơn, nhưng đôi khi gây khó hiểu nếu bạn không sử dụng nhiều , cũng như chỉ nên sử dụng nếu các câu lệnh không quá phức tạp
// using ternary
function testNum(a) {
return a > 0 ? 'positive' : 'NOT positive';
}
if (x > 100) {
/* do something */
} else if (x > 10) {
/* do something */
} else {
/* do something */
}
Một vài lỗi mà chúng ta hay gặp khi sử dụng cấu trúc rẽ nhánh if else đó là:
// We use == NOT =
if(x = y) {
}
// Not using Boolean Object for this
var x = new Boolean(false);
if (x) {
// this code is executed
}
var x = false;
if (x) {
// this code is not executed
}
Cảm ơn các bạn đã theo dõi, hãy ủng hộ Yêu Lập Trình trong các bài viết tiếp tiếp theo các bạn nhé.