Nếu thân vòng lặp có một câu lệnh đơn, chúng ta có thể bỏ qua dấu ngoặc nhọn {…}
:
Tóm Tắt
Vòng lặp do … while
Kiểm tra điều kiện có thể được di chuyển vào bên trong thân vòng lặp bằng do..while
cú pháp:
Vòng lặp trước tiên sẽ thực thi phần thân, sau đó kiểm tra điều kiện và trong khi đó là sự true, hãy thực hiện nó nhiều lần.
Bạn đang đọc: Vòng lặp – while vs for trong Javascript – NordicCoder
Ví dụ :
Dạng cú pháp này chỉ nên được sử dụng khi bạn muốn phần thân của vòng lặp thực thi ít nhất một lần bất kể điều kiện là sai. Thông thường, các hình thức khác được ưa thích : while(…) {…}
.
Các vòng lặp for
Các vòng lặp for
là phức tạp hơn, nhưng nó cũng là vòng lặp thường được sử dụng nhất.
Nó trông như thế này :
Hãy tìm hiểu ý nghĩa của những phần này bằng ví dụ. Vòng lặp bên dưới chạy alert(i)
cho i
từ 0
lên đến (nhưng không bao gồm) 3
:
Hãy xem xét từng for
phần của câu lệnh:
phần | ||
---|---|---|
bắt đầu | i = 0 |
Thực hiện một lần khi vào vòng lặp. |
tình trạng | i < 3 |
Kiểm tra trước mỗi lần lặp lặp. Nếu sai, vòng lặp dừng lại. |
thân hình | alert(i) |
Chạy đi chạy lại trong khi điều kiện là sự thật. |
bươc | i++ |
Thực hiện sau khi phân thân mỗi lần lặp. |
Thuật toán vòng lặp chung hoạt động giải trí như thế này :
Đó là, begin
thực thi một lần, và sau đó lặp lại: sau mỗi lần condition
kiểm tra body
và step
được thực thi.
Nếu bạn chưa quen với những vòng lặp, nó hoàn toàn có thể giúp quay lại ví dụ và tái tạo cách nó chạy từng bước trên một tờ giấy .Đây đúng mực là những gì xảy ra trong trường hợp của chúng tôi :
Khai báo biến nội tuyến
Ở đây, biến số đối lập i
được khai báo ngay trong vòng lặp. Điều này được gọi là một khai báo biến trực tuyến nội tuyến. Các biến như vậy chỉ được nhìn thấy bên trong vòng lặp.
Thay vì khai báo một biến, tất cả chúng ta hoàn toàn có thể sử dụng một biến hiện có :
Bỏ qua các bộ phận
Bất kỳ phần nào của for
có thể được bỏ qua.
Ví dụ: chúng ta có thể bỏ qua begin
nếu chúng ta không cần làm gì khi bắt đầu vòng lặp.
Giống như ở đây :
Chúng tôi cũng có thể loại bỏ step
một phần:
Điều này làm cho vòng lặp giống hệt while (i < 3)
.
Chúng tôi thực sự hoàn toàn có thể vô hiệu mọi thứ, tạo ra một vòng lặp vô hạn :
Xin lưu ý rằng hai for
dấu chấm phẩy ;
phải có mặt. Nếu không, sẽ có một lỗi cú pháp.
Break vòng lặp
Thông thường, một vòng lặp thoát khi thực trạng của nó trở nên sai .
Nhưng chúng ta có thể buộc thoát ra bất cứ lúc nào bằng cách sử dụng break
chỉ thị đặc biệt .
Ví dụ : vòng lặp bên dưới nhu yếu người dùng phân phối một loạt số, break khi không nhập số :
Lệnh break
được kích hoạt tại dòng (*)
nếu người dùng nhập vào một dòng trống hoặc hủy bỏ đầu vào. Nó dừng vòng lặp ngay lập tức, chuyển điều khiển đến dòng đầu tiên sau vòng lặp. Cụ thể, alert
.
Vòng lặp vô hạn của tổ hợp + break
khi cần thiết, rất phù hợp cho các tình huống khi phải kiểm tra điều kiện của vòng lặp không phải ở đầu hoặc cuối vòng lặp, mà ở giữa hoặc thậm chí ở một số vị trí trên cơ thể.
Tiếp tục đến lần lặp tiếp theo
Lệnh continue
này là một phiên bản nhẹ hơn của break
. Nó không dừng toàn bộ vòng lặp. Thay vào đó, nó dừng lặp lại hiện tại và buộc vòng lặp bắt đầu một vòng lặp mới (nếu điều kiện cho phép).
Chúng ta hoàn toàn có thể sử dụng nó nếu tất cả chúng ta đã hoàn thành xong với lần lặp hiện tại và muốn chuyển sang lần lặp tiếp theo .
Vòng lặp bên dưới chỉ sử dụng continue
để xuất các giá trị lẻ:
Đối với các giá trị chẵn của i
, lệnh continue
dừng thực thi phần thân và chuyển điều khiển sang lần lặp tiếp theo của for
(với số tiếp theo). Vì vậy, alert
chỉ được gọi cho các giá trị lẻ.
Một vòng lặp hiển thị những giá trị kỳ lạ hoàn toàn có thể trông như thế này :
Từ quan điểm kỹ thuật, điều này giống hệt với ví dụ trên. Chắc chắn, chúng ta chỉ có thể bọc code trong một if
khối thay vì sử dụng continue
.
Nhưng như một hiệu ứng phụ, điều này tạo ra thêm một cấp độ lồng nhau (gọi alert
bên trong các dấu ngoặc nhọn). Nếu code bên trong if
dài hơn một vài dòng, điều đó có thể làm giảm khả năng đọc.
Không break/continue
ở bên phải của ‘?’
Xin lưu ý rằng các cấu trúc cú pháp không phải là biểu thức có thể được sử dụng với toán tử ternary ?
. Cụ thể, các chỉ thị như break/continue
không được phép ở đó.
Ví dụ : nếu chúng tôi lấy code này :
Viết và viết lại bằng dấu chấm hỏi :
Không thể ngừng hoạt động giải trí : có lỗi cú pháp .
Đây chỉ là một lý do khác để không sử dụng toán tử dấu hỏi ?
thay vì if
.
Nhãn để break / continue
Đôi khi tất cả chúng ta cần thoát ra khỏi nhiều vòng lặp lồng nhau cùng một lúc .
Ví dụ: trong đoạn code bên dưới, chúng tôi lặp lại i
và j
nhắc nhở tọa độ (i, j)
từ (0,0)
đến (2,2)
:
Chúng tôi cần một cách để dừng quy trình nếu người dùng hủy bỏ nguồn vào .
Bình thường break
sau input
sẽ chỉ phá vỡ vòng lặp bên trong, Nhưng không đủ.
Một nhãn là một định danh với một dấu hai chấm trước một vòng lặp :
Câu break
lệnh trong vòng lặp bên dưới thoát ra khỏi nhãn:
Trong đoạn code trên, break outer
nhìn lên trên cho nhãn có tên outer
và thoát ra khỏi vòng lặp đó.
Vì vậy, kiểm soát đi thẳng từ (*)
đến alert('Done!')
.
Chúng tôi cũng hoàn toàn có thể chuyển dời nhãn lên một dòng riêng không liên quan gì đến nhau :
Lệnh continue
này cũng có thể được sử dụng với nhãn. Trong trường hợp này, thực thi nhảy code đến lần lặp tiếp theo của vòng lặp được gắn nhãn. Nhãn không cho phép nhảy nhảy bất cứ nơi nào
Nhãn không được cho phép chúng tôi nhảy vào một vị trí tùy ý trong code .Ví dụ, không hề làm điều này :
Một cuộc gọi đến break/continue
chỉ có thể từ bên trong một vòng lặp và nhãn phải ở đâu đó phía trên chỉ thị.
Tóm lược
Chúng tôi bao gồm 3 loại vòng:
Xem thêm: Ví dụ Lập trình MVC trong Java
while
– Điều kiện được kiểm tra trước mỗi lần lặp.do..while
– Điều kiện được kiểm tra sau mỗi lần lặp.for (;;)
– Điều kiện được kiểm tra trước mỗi lần lặp, cài đặt bổ sung có sẵn.
Để tạo một vòng lặp vô hạn của người dùng, thông thường, while(true)
cấu trúc được sử dụng. Một vòng lặp như vậy, giống như bất kỳ vòng lặp nào khác, có thể được dừng lại bằng lệnh break
.
Nếu chúng ta không muốn làm bất cứ điều gì trong lần lặp hiện tại và muốn chuyển tiếp đến lần tiếp theo, chúng ta có thể sử dụng lệnh continue
.
break/continue
với nhãn hỗ trợ trước vòng lặp. Một nhãn là cách duy nhất break/continue
để thoát khỏi một vòng lặp lồng nhau để đi đến một vòng ngoài.
Source: https://final-blade.com
Category: Kiến thức Internet