Xin chào và chào mừng. Trong bài giảng này, tôi muốn nói về vòng lặp lồng nhau và điều khiển vòng lặp.
Các vòng lặp lồng nhau, các vòng lặp bên trong các vòng lặp, điều khiển vòng lặp liên
quan đến các câu lệnh break và continue.
Vì vậy, các vòng lặp lồng nhau.
Có những lúc bạn muốn đặt một vòng lặp bên trong một vòng lặp khác.
Nó có ý nghĩa hoàn hảo.
Vì vậy, chẳng hạn, bạn
có thể muốn đếm số người cư ngụ trong mỗi ngôi nhà trên một con phố.
Vì vậy, những gì bạn sẽ làm là bạn sẽ có một vòng ngoài nơi bạn bước từ nhà này sang nhà khác.
Và sau đó mỗi ngôi nhà bạn đang ở trong đó, bạn sẽ đếm số người cư ngụ.
Vì vậy, tôi hy vọng bạn có thể hình dung hoặc hiểu cách đó có thể là một vòng lặp lồng nhau.
Một lần nữa, vòng ngoài để đi qua tất cả các ngôi nhà.
Và sau đó đối với mỗi lần lặp lại vòng lặp bên ngoài mỗi ngôi nhà mà bạn gặp phải, bạn sẽ vào
bên trong ngôi nhà và có một vòng lặp để đếm tất cả mọi người.
Vì vậy, đó là một trường hợp sử dụng nhỏ khi bạn thực sự muốn
sử dụng một vòng lặp lồng nhau trong c.
Đây là một ví dụ. Có vẻ như bạn nghĩ rằng nó
sẽ trông một vòng lặp bên trong một vòng lặp thực sự không quá phức tạp.
Trong ví dụ này, chúng tôi đang sử dụng vòng lặp for cho.
Vòng lặp rất hay vì chúng ta có thể khởi tạo biến điều khiển vòng
lặp, kiểm tra điều kiện và biến điều khiển vòng lặp sửa đổi của chúng ta tất cả trong một dòng.
Vì vậy, vòng lặp bên ngoài này và gọi nó là vòng lặp bên trong bên ngoài.
Vòng lặp bên ngoài chính xác như những gì nó ngụ ý. Đó là vòng lặp ở bên ngoài.
Và bạn có thể có nhiều, nhiều lớp làm tổ khác nhau. Bạn có thể có nhiều vòng
lặp bên trong.
Trong trường hợp này, chúng ta đang đi qua và đó là
vòng lặp được kiểm soát ngược lại, chúng ta đang bắt đầu từ một và chúng ta sẽ đếm hết.
Chúng tôi không biết số đếm ở đây là gì, nó không quan trọng.
Trong phần nội dung của vòng lặp for, chúng ta đang nói rằng tổng bằng 0. Chúng tôi đang khởi tạo tổng cho vòng lặp bên trong.
Và sau đó bên trong vòng lặp bên trong, chúng ta thấy một vòng lặp for khác cho và j
bằng 1, j nhỏ hơn I và cộng với j. Sau đó chúng ta nói rằng tổng cộng bằng j.
Chúng tôi đang tính tổng các số nguyên từ 1 đến I.
Vì vậy, những gì điều này thực sự đang làm là bạn đang nhập số 5.
Và đối với lần lặp đầu tiên của vòng lặp,
bạn đang tính tổng 1 2 3 4 và 5.
Đối với lần lặp tiếp theo của
vòng lặp, bạn đang tính tổng 2 3 4 5.
Đối với lần lặp thứ ba của vòng lặp, bạn đang tính tổng 3 4 5, v.v.
Vì vậy, các vòng lặp bên trong là cần thiết, đặc biệt chỉ dựa trên trường hợp sử dụng, chỉ là một vòng lặp
bên trong một vòng lặp một cách hoàn hảo.
Bạn sẽ thấy nó khá nhiều.
Đừng né tránh nó. Tùy thuộc vào những gì bạn cần làm và vấn đề bạn đang cố gắng
giải quyết, nó thường được sử dụng khá ít.
Và đến thời điểm đó, không phải lúc nào cũng có một vòng lặp for bên trong vòng lặp for, bạn có thể có
một vòng lặp while bên trong vòng lặp for. Bạn có thể có một vòng lặp do while bên trong vòng lặp
for, điều đó không quan trọng.
Vì vậy, trong ví dụ
này, cùng một ví dụ chính xác, ngoại trừ bây giờ bên trong phần thân của vòng lặp for, chúng
ta có một vòng lặp lồng nhau một vòng lặp bên trong được gọi bằng cách sử dụng từ khóa while.
Vì vậy, chúng tôi vẫn đang tính toán một số số nguyên từ 1 đến I.
Chúng tôi có một số khởi tạo uh bên ngoài vòng lặp while.
Chúng tôi có một điều kiện bên trong kiểm tra while và
chúng tôi có tổng của chúng tôi bên trong phần thân của vòng lặp while
mà chúng tôi đã sửa đổi, đó là biến điều khiển vòng lặp mà chúng tôi đang sửa đổi.
Vì vậy, tổng cộng bằng và sau đó chúng tôi đang sửa đổi biến điều khiển vòng lặp với cộng cộng với j.
Vì vậy, nếu chúng ta không sửa đổi plus plus j, chúng ta sẽ có một vòng lặp vô hạn cho vòng lặp while.
Nhưng nó thực hiện cùng một đầu ra, nó chỉ sử dụng một vòng lặp while như một vòng lặp lồng nhau thay vì vòng lặp for.
Vì vậy, việc làm tổ thực sự không khác gì so với khi bạn làm tổ bất cứ thứ gì.
Bạn lồng nhau câu lệnh if, câu lệnh if bên trong câu lệnh if, câu lệnh
vòng lặp lồng nhau lặp lại bên trong vòng lặp.
Để thoát khỏi khái niệm vòng
lặp lồng nhau, hãy nói về câu lệnh continue.
Cho đến thời điểm này khi chúng ta nói về các
vòng lặp, chúng ta luôn thực hiện vòng lặp một số lần dựa trên điều kiện
thoát, biểu thức Boolean được đánh giá là false.
Tuy nhiên, có những lúc bạn muốn kết thúc sớm vòng lặp một cách cụ thể hoặc
bạn muốn tiếp tục lặp lại tiếp theo của
vòng lặp mà không làm gì cả.
Trong trường hợp thứ hai, tiếp tục mà không làm gì cả,
về cơ bản bỏ qua, bạn có thể
sử dụng câu lệnh continue để thực hiện việc này.
Vì vậy, câu lệnh continue trong phần thân của vòng lặp thực hiện như sau.
Và trước hết, nếu bạn muốn bắt đầu điều này, tất cả những gì bạn phải làm là đặt từ khóa
continue theo sau là dấu chấm phẩy trong phần thân của vòng lặp.
Nhưng những gì nó sẽ làm là về cơ bản nó
sẽ bỏ qua bước lặp đó. Vì vậy, tiếp tục bất cứ điều
gì bên dưới tiếp tục sẽ không được thực hiện nếu nó nằm trong phần thân của vòng lặp.
Vì vậy, hãy tiếp tục nhiều lần, chúng ta sẽ muốn ở đầu vòng lặp dựa trên
một số điều kiện, nó thường được bao bọc trong một câu lệnh if.
Nếu điều này xảy ra tình huống đặc biệt, tôi không muốn thực thi
bất kỳ mã nào trong phần nội dung của vòng lặp,
chỉ cần bỏ qua một lần lặp này và kiểm tra lần sau.
Và một lần nữa, nó hơi khó hiểu vì bạn đang bỏ qua một lần lặp và bạn đang nhảy xung quanh, nhưng nó
hợp lệ và đó là một cách để thực hiện nhiều lần kiểm tra.
Vì vậy, mặc dù bạn có điều kiện thoát vòng lặp bên trong biểu thức Boolean, bạn
có thể kiểm tra một lần nữa.
Và kiểm tra đó sẽ không nhảy ra khỏi vòng lặp, nhưng nó sẽ
bỏ qua một lần lặp lại.
Vì vậy, nó được sử dụng một lần nữa cho trường hợp bạn muốn bỏ qua lặp lại. Ưu điểm của nó là bạn có thể
sử dụng tiếp tục và nó sẽ loại bỏ rất nhiều tổ.
Nó cũng sẽ loại bỏ rất nhiều câu lệnh if bổ sung bên trong khối vòng lặp của bạn.
Vì vậy, nó có thể nâng cao khả
năng đọc khi các câu lệnh rất dài hoặc bạn có lồng ghép sâu.
Vì vậy, nếu bạn thấy mình đang làm tổ nhiều.
bạn có thể muốn nói huh có lẽ tôi có thể sử dụng tiếp tục để thay thế.
Hoặc nếu bạn thấy rằng bạn có nhiều câu lệnh if đang
thực hiện một số việc nhất định bên trong phần thân của vòng lặp, có thể bạn muốn thực hiện tiếp tục.
Không sử dụng tiếp tục nếu nó phức tạp hơn là đơn giản hóa mã.
Không sử dụng tiếp tục nếu bạn không biết mình đang làm gì.
Đây là một ví dụ về tiếp tục.
Trong ví dụ này, chúng tôi đang tạo một enum mới của loại ngày và chúng
tôi nói rằng các giá trị hợp lệ là Thứ Hai Thứ Ba Thứ Tư Thứ Năm Thứ Sáu Thứ Bảy Chủ Nhật.
Và sau đó chúng ta có một vòng lặp for trong đó chúng ta đang khởi
tạo enum của mình cho đến Thứ Hai, và chúng
ta đang nói rằng miễn là ngày nhỏ hơn Chủ nhật, đó là điều
kiện để thoát và sau đó chúng ta nói rằng cộng thêm ngày.
Bạn có thể tự hỏi mình câu hỏi làm thế nào chúng ta tăng một enum?
Hãy nhớ rằng một enum dưới mui xe là một số nguyên.
Vì vậy, bạn có thể nói cộng ngày cộng thêm trên một enum và điều đó sẽ tăng dần nó lên một cái tiếp theo.
Hãy nhớ rằng, thứ hai bằng 0, thứ ba bằng 1, thứ tư
bằng 2, tất cả đều là thứ tự của danh sách.
Vì vậy, hoàn toàn tốt để tăng enums.
Trong vòng lặp for này nếu là thứ Tư, chúng tôi
muốn bỏ qua. Chúng tôi không muốn làm bất cứ điều gì. Chúng tôi không muốn in.
Vì vậy, chúng tôi nói tiếp tục. Nếu ngày bằng thứ tư,
hãy tiếp tục. Nó sẽ bỏ qua dòng in. Nó sẽ quay trở lại đầu
vòng lặp và nó sẽ thực hiện lần lặp tiếp theo.
Và vì vậy nó sẽ là thứ Năm.
Thứ 4 sẽ không bằng thứ 4 nên sẽ không bỏ qua.
Nó sẽ xuống ngay và in ra không phải là thứ Tư.
Vì vậy, đây là một trường hợp sử dụng phổ biến, ví dụ phổ biến của việc sử dụng tiếp tục, cú pháp rất dễ sử dụng, chỉ
cần một từ khóa đơn giản theo sau dấu chấm phẩy.
Một trường hợp khác mà bạn có thể muốn làm điều gì đó kỳ lạ trong vòng
lặp là nếu bạn muốn thoát ra sớm.
Vì vậy, thông thường sau khi phần thân của vòng lặp đã được
nhập, một chương trình sẽ thực hiện tất cả các câu lệnh trong phần thân của vòng lặp
và cho mỗi lần lặp và sau đó nó sẽ kiểm tra và nhảy ra.
Và chúng tôi biết cách tiếp tục hoạt động, điều này đang thực hiện một chút khác biệt khi bỏ qua.
Có một câu lệnh khác có thể thay đổi việc thực thi tất cả các câu lệnh trong vòng lặp,
nó được gọi là break.
Và điều này sẽ hơi quen thuộc vì chúng ta sử dụng từ khóa break khi nói
về câu lệnh switch.
Hãy nhớ rằng, khi chúng tôi có các trường hợp của mình, chúng tôi sẽ phá vỡ các trường hợp theo cách đó.
Bạn cũng có thể sử dụng từ khóa break bên trong vòng lặp.
Và điều này sẽ làm là nó sẽ nhảy ra khỏi vòng lặp.
Vì vậy, câu lệnh break sẽ làm cho chương trình ngay lập tức thoát khỏi vòng lặp, nó đang thực thi.
Các câu lệnh trong vòng lặp bị bỏ qua và việc thực thi vòng lặp bị chấm dứt.
Vì vậy, bạn chỉ cần nhảy ra khỏi vòng lặp.
Bạn đang thực hiện sớm. Nếu câu lệnh break nằm bên trong các vòng lặp lồng nhau, nó sẽ
chỉ ảnh hưởng đến vòng lặp trong cùng, chứa nó. Bạn sẽ chỉ nhảy ra khỏi vòng lặp mà bạn đang ở.
Và để làm điều này, bạn sử dụng ngắt từ khóa theo sau là dấu chấm phẩy.
Break thường được sử dụng để rời khỏi một vòng lặp khi có 2 lý do riêng biệt để rời khỏi.
Vì vậy, trước đó tôi đã đề cập rằng bạn có thể có một lý do khác mà bạn muốn bỏ
qua một lần lặp, nhưng nếu có 2 lý do, 2 điều kiện mà bạn muốn nhảy ra khỏi một vòng lặp, bạn có
thể sử dụng dấu ngắt.
Nếu bạn chỉ có một
điều kiện, thì đó chỉ là điều kiện, bên trong chính vòng lặp, bên trong dấu ngoặc
đơn của while hoặc trước dấu chấm phẩy thứ hai trong vòng lặp for.
Break cũng được sử dụng trong câu lệnh switch, như tôi đã đề cập.
Vì vậy, tôi chỉ muốn nhắc bạn điều đó. Đừng làm họ bối rối.
Về cơ bản, chúng làm những việc giống nhau. Họ nhảy ra khỏi mã.
Việc ngắt một câu lệnh switch sẽ hoàn toàn nhảy
ra khỏi câu lệnh switch đó, ngắt một vòng lặp sẽ nhảy ra khỏi vòng lặp đó.
Đây là một ví dụ. Chúng tôi có một vòng lặp trong khi.
Chúng tôi đang in ra một số số nguyên.
Chúng tôi đang đọc trong một số số nguyên. Chúng ta có một vòng lặp while lồng nhau.
Bên trong vòng lặp while lồng nhau, chúng tôi kiểm
tra những gì đã được nhập. Và nếu nó lớn hơn 100, chúng
tôi muốn nhảy ra khỏi vòng lặp bên trong đó. Vì vậy chúng tôi làm.
Sau đó, ở vòng ngoài, chúng ta phải thực hiện một kiểm tra khác. Nếu nó lớn hơn 100, chúng tôi thoát ra
khỏi vòng lặp bên ngoài đó.
Nếu bạn không có lần nghỉ thứ hai, bạn sẽ không bao giờ nhảy ra khỏi vòng ngoài thứ hai.
Vì vậy, trong trường hợp này, điều này nhắc nhở tôi về một nơi mà bạn có thể sử dụng để đi đến.
Hãy tưởng tượng nếu bạn có 5 lồng nhau, 5 lớp lồng nhau, vòng lặp while bên trong vòng lặp
while bên trong vòng lặp while bên trong vòng lặp while bên trong vòng lặp while.
Nếu bạn chỉ sử dụng dấu ngắt để cố gắng nhảy ra khỏi các
vòng lặp, bạn sẽ có tất cả các câu lệnh if này trong mỗi vòng lặp để nhảy ra ngoài.
Thay vì thực hiện tất cả các câu lệnh
if, bạn có thể thực hiện. Hành động đi đến sẽ nhảy ra khỏi tất cả các vòng lặp trạng thái vòng lặp trong một lệnh duy nhất.
Vì vậy, đó là một trường hợp sử dụng để đi đến. Nhưng trong trường hợp này, chúng tôi chỉ
trình bày các khoảng nghỉ và đảm bảo rằng bạn hiểu rằng bạn đang
thoát ra khỏi vòng lặp mà bạn đang ở trong đó.
Và trong trường hợp này, chúng ta đang thoát ra khỏi 2 vòng lặp.
Vì vậy, đây là 2 ví dụ, 2 từ khóa mà về cơ bản bạn không thể lặp lại
mã những gì bạn mong đợi.
Vì vậy, nếu bạn từng thấy ngắt hoặc tiếp tục trong vòng lặp, hãy đảm bảo
rằng bạn hiểu điều gì đang xảy ra vì bạn
có thể không thực thi một số mã nhất định mà bạn nghĩ là sẽ được thực thi.
Một lần nữa, thường được bao bọc bên trong một điều kiện if. Vì vậy, bạn có thể nhìn
nhận nó theo cách đó, nhưng bạn cũng muốn cung cấp những nhận xét tốt khi bạn sử dụng break hoặc continue.
Hi vọng điêu nay co ich. Trong bài giảng tiếp theo, chúng ta
sẽ thực hiện một thử thách mà chúng ta sẽ có thể
sử dụng các vòng lặp này và nó sẽ chứng minh và giúp bạn tìm hiểu tất cả về vòng lặp while và
break và tiếp tục. Cảm ơn bạn.