Các vòng lặp lồng nhau rất hữu ích khi mỗi lần đi qua vòng lặp bên ngoài, bạn cần lặp lại một số thao tác trên dữ liệu ở vòng lặp bên ngoài. Ví dụ: bạn đọc từng dòng một của tệp và đối với mỗi dòng, bạn phải đếm xem từ “the” được tìm thấy bao nhiêu lần. Vòng lặp bên ngoài sẽ đọc các dòng và vòng lặp bên trong sẽ tìm kiếm từng dòng cho “the” bằng cách lặp qua các từ trong dòng
Thoát ra khỏi một vòng lặp
Câu lệnh C++ có tên là
if [a == c] {3 cung cấp một cách để thoát khỏi vòng lặp sớm. Câu lệnh break được đặt trong phần thân của vòng lặp thường là một phần của câu lệnh if
Thí dụ
Trong ví dụ này, vòng lặp được đặt để chạy tối đa 50 lần nhưng người dùng có thể thoát khỏi vòng lặp bất kỳ lúc nào bằng cách chỉ định một đầu vào cụ thể, trong trường hợp này là
if [a == c] {4
Bạn có nên sử dụng if [a == c] {
3?
Việc sử dụng câu lệnh break không được khuyến khích. Chúng tôi hy vọng việc lặp lại một vòng lặp sẽ được kiểm soát bởi các câu lệnh đúng/sai trong các phần tiêu đề của vòng lặp while và do-while và for. Thêm một phương tiện để đột ngột dừng vòng lặp bên ngoài cách tiếp cận thông thường có thể khiến mã khó hiểu và khó gỡ lỗi
Ta có thể viết lại đoạn code trên để dừng khi user vào
if [a == c] {4 mà không cần dùng câu lệnh break như sau
Sử dụng if [a == c] {
3 trong một vòng lặp lồng nhau
Trong vòng lặp lồng nhau, câu lệnh break chỉ dừng vòng lặp mà nó được đặt vào. Do đó, nếu ngắt được đặt ở vòng lặp bên trong, vòng lặp bên ngoài vẫn tiếp tục. Tuy nhiên, nếu ngắt được đặt ở vòng lặp bên ngoài, tất cả các vòng lặp sẽ dừng lại
Các câu lệnh if/else lồng nhau giúp tổ chức và cô lập các điều kiện để tránh kiểm tra cùng một điều kiện hai lần hoặc để giảm thiểu số lần cần thực hiện các kiểm tra khác nhau.
Bằng cách sử dụng câu lệnh if với cả toán tử so sánh và logic, chúng ta có thể thiết lập mã sẽ chạy nếu đáp ứng một tổ hợp điều kiện cụ thể. Không phải lúc nào chúng ta cũng muốn kiểm tra toàn bộ điều kiện để chạy một tập hợp các câu lệnh nếu toàn bộ kiểm tra là đúng và một tập hợp khác nếu nó sai. Chúng tôi có thể muốn chọn giữa một số câu lệnh khác nhau, tùy thuộc vào sự kết hợp cụ thể của các điều kiện là đúng
Ví dụ: giả sử chúng ta có ba giá trị để so sánh và muốn đặt các kết quả khác nhau tùy thuộc vào giá trị nào bằng nhau. Ví dụ sau đây cho thấy cách chúng ta có thể lồng các câu lệnh if để kiểm tra điều này [in đậm bên dưới]
var answer;
if [a == b] {
if [a == c] {
answer = "tất cả đều bình đẳng";
} else {
answer = "a and b are equal";
}
} else {
if [a == c] {
answer = "a and c are equal";
} else {
if [b == c] {
answer = "b and c are equal";
} else {
answer = "all are different";
}
}
}
Cách logic hoạt động ở đây là
- Nếu điều kiện đầu tiên là đúng [
if [a == b] {
0], thì chương trình sẽ kiểm tra điều kiện if lồng nhau [if [a == b] {
1]. Nếu điều kiện đầu tiên là sai, chương trình sẽ chuyển sang điều kiện khác - Nếu if lồng nhau là đúng, câu lệnh được thực thi, i. e. "tất cả đều bình đẳng"
- Nếu if lồng nhau là sai, thì câu lệnh khác được thực thi, i. e. "a và b bằng nhau"
Dưới đây là một số điều cần lưu ý cách mã này được mã hóa
- Đầu tiên, chúng tôi đã tạo câu trả lời biến để giữ kết quả trước khi chúng tôi bắt đầu câu lệnh if, làm cho biến trở thành toàn cầu. Nếu không có điều đó, chúng ta sẽ cần đưa biến vào trước tất cả các câu lệnh gán, vì nó sẽ là một biến cục bộ
- Thứ hai, chúng tôi đã thụt lề từng câu lệnh if lồng nhau. Điều này cho phép chúng tôi theo dõi dễ dàng hơn có bao nhiêu cấp câu lệnh lồng nhau. Nó cũng làm rõ hơn rằng chúng tôi đã đóng đúng số khối mã để hoàn thành tất cả các câu lệnh if mà chúng tôi đã mở. Bạn có thể thấy rằng sẽ dễ dàng hơn khi đặt các dấu ngoặc nhọn ở đó trước cho mỗi câu lệnh if trước khi bạn bắt đầu viết mã thuộc về khối đó
Chúng ta có thể đơn giản hóa một phần của mã này một chút để tránh phải lồng các câu lệnh if vào nhau quá nhiều. Trong trường hợp toàn bộ khối other được tạo thành từ một câu lệnh if duy nhất, chúng ta có thể bỏ qua các dấu ngoặc xung quanh khối đó và di chuyển chính điều kiện if lên trên cùng một dòng với câu lệnh other, sử dụng điều kiện "else if". Ví dụ
var answer;
if [a == b] {
if [a == c] {
if [a == b] {5
} else {
if [a == b] {7
}
if [a == b] {9
answer = "a and c are equal";
} else if [b == c] {
answer = "b and c are equal";
} else {
if [a == c] {1
}
Các câu lệnh if/then lồng nhau phổ biến trong tất cả các ngôn ngữ lập trình, không chỉ JavaScript. Các lập trình viên mới làm quen thường sử dụng nhiều câu lệnh if/then hoặc if/else thay vì lồng chúng vào nhau. Mặc dù loại mã này sẽ hoạt động, nhưng nó sẽ nhanh chóng trở nên dài dòng và sẽ lặp lại các điều kiện. Các câu lệnh điều kiện lồng nhau tạo ra logic của chương trình rõ ràng hơn và dẫn đến mã ngắn gọn có thể chạy hoặc biên dịch nhanh hơn
Trích dẫn bài viết này
Định dạng
mla apa chicagotrích dẫn của bạn
Chapman, Stephen. "Các câu lệnh IF/ELSE lồng nhau trong JavaScript. "ThinkCo. https. //www. suy nghĩ. com/javascript-making-decisions-2037427 [truy cập ngày 9 tháng 12 năm 2022]