‫Được rồi.
‫Vì vậy, bây giờ bạn đã biết cách sử dụng mảng và mảng 2D cũng như cho mỗi vòng lặp, chúng ta hãy kết hợp chúng lại để
‫kết hợp các khái niệm trong một video và một ví dụ, nhưng cũng hãy xem xét các vòng lặp for lồng nhau.
‫Vì vậy, trong video này, chúng ta sẽ xem xét các tính năng khác nhau này và sau đó chúng ta sẽ xem
‫khi nào sử dụng vòng lặp for lồng nhau và lợi thế của vòng lặp for lồng nhau so với vòng lặp for
‫mỗi vòng lặp là gì, ví dụ: mảng nhiều chiều.
‫Được rồi, vậy chúng ta hãy bắt đầu.
‫Điều đầu tiên mà tôi có ở đây là, như bạn có thể thấy, tôi có
‫ma trận này là một mảng hai chiều có ba mục đối với mỗi chiều, vì vậy có thể nói là ba hàng và ba cột.
‫Vì vậy, tôi sẽ sử dụng cho mỗi vòng lặp bằng cách sử dụng cho mỗi từ khóa ở đây là từ khóa này và tab.
‫Và điều này sau đó sẽ cho phép tôi về cơ bản chỉ cần nhập thật nhanh đó là loại gì, cách tôi
‫muốn gọi mục của bộ sưu tập mà tôi đang lặp lại và tên bộ sưu tập.
‫Vì vậy, đây là một mẹo nhỏ nếu bạn muốn viết mã nhanh hơn.
‫Vì vậy, mục sẽ có kiểu số nguyên vì chúng ta muốn lặp qua ma trận này có một loạt các số nguyên trong đó
‫và mục chúng ta có thể gọi là mục, chúng ta có thể gọi nó là num vì nó là một số, chúng ta có thể
‫gọi nó là phần tử.
‫Đây sẽ là những cái tên bình thường mà bạn sẽ thấy ở đây, nhưng mục này sẽ ổn vào lúc này.
‫Và sau đó bộ sưu tập mà tôi muốn lặp lại sẽ trở thành ma trận của tôi mà tôi đã chuẩn bị ở đây.
‫Và đó cũng là lý do tại sao tôi cần làm cho ma trận này tĩnh, bởi vì tôi đang sử dụng nó
‫bên trong phương thức chính tĩnh của mình.
‫Và bạn không thể sử dụng các mục hoặc biến không phải tĩnh bên trong phương thức chính tĩnh hoặc bên trong phương thức
‫tĩnh nói chung.
‫Vì vậy, để lặp đi lặp lại điều này cho mỗi vòng lặp và hiển thị các mục ma trận, chúng ta có thể tiếp tục
‫và sử dụng câu lệnh dòng bên phải của bảng điều khiển ở đây.
‫Vì vậy, hãy xem w double tab và ở đây tôi chỉ nói rằng hiển thị mục và sau đó tạo một không gian trống.
‫Hoặc tạo một không gian trống và thực sự chúng ta không sử dụng đường màu đỏ, nhưng phải.
‫Vì vậy, điều này sẽ chỉ viết nó trong một dòng chứ không phải tạo một dòng mới mọi lúc.
‫Bây giờ, hãy chạy thật nhanh.
‫Và chúng ta sẽ thấy rằng chúng ta có một, hai, ba, bốn, năm, sáu, bảy, tám, chín.
‫Vì vậy, tất cả các mục mà chúng tôi có ở đây trong ma trận của chúng tôi đang được hiển thị.
‫Vì vậy, chúng tôi đang sử dụng điều này cho mỗi vòng lặp để đi qua từng mục bên trong ma trận này và nó chỉ
‫đi từ trái hoặc trên cùng bên trái sang dưới cùng bên phải, có thể nói, trong ví dụ của chúng tôi ở đây.
‫Được chứ.
‫Vì vậy, đối với mỗi vòng lặp là một công cụ mạnh mẽ.
‫Nó cho phép chúng ta đi qua một bộ sưu tập và một ma trận 2D, một ma trận 3D, tuy nhiên bạn muốn có nhiều kích thước
‫như thế nào.
‫Tất cả những thứ đó cuối cùng cũng chỉ là tập hợp, bởi vì ở đây chúng ta đang sử dụng một mảng và mảng là một loại tập
‫hợp và đây là những gì chúng ta cần để cung cấp cho mỗi vòng lặp để lặp qua.
‫Vì vậy, nó lặp lại qua ma trận thu thập của chúng tôi.
‫Vì vậy, bây giờ chúng ta có thể tiếp tục và sử dụng điều này để chỉ cho bạn cách bạn có thể đạt được điều này bằng cách sử dụng vòng lặp for lồng
‫nhau.
‫Vì vậy, vòng lặp for each là siêu hữu ích nếu bạn chỉ muốn đi qua từng mục trong đó, nhưng
‫nó có một số nhược điểm nhất định trong một số tình huống nhất định.
‫Vì vậy, trong trường hợp bây giờ bạn muốn thay đổi mục, bạn không thể làm điều đó vì nó đã được bảo vệ.
‫Vì vậy, bạn không thể tiếp tục và nói rằng mục bây giờ nên được ghi đè bằng ba, chẳng hạn.
‫Như bạn có thể thấy ở đây.
‫Vì vậy, nếu bạn cố gắng mà nó cho biết không thể gán cho mục vì nó là một cho mỗi biến lặp.
‫Vì vậy, nó không phải là vật phẩm thực tế, nó thực sự chỉ là nơi lưu trữ giá trị, có thể nói như vậy.
‫Vì vậy, chúng tôi lưu trữ bất kỳ giá trị nào mà chúng tôi hiện đang xem xét từ bộ sưu tập của mình và những gì chúng tôi lưu trữ ở đây, giá
‫trị của nó.
‫Vì vậy, trong lần lặp đầu tiên, nó là một.
‫Trong lần lặp thứ hai, nó là hai, nhưng nó không bao giờ thực sự là chính giá trị, nó chỉ là một tham chiếu
‫đến giá trị.
‫Vì vậy, điều này thực sự không giúp ích cho chúng tôi.
‫Vì vậy, nếu chúng ta thực sự muốn điều chỉnh nó, chúng ta sẽ cần một cái gì đó giống như một vòng lặp for lồng nhau.
‫Vì vậy, ở đây, hãy tiếp tục và tạo một vòng lặp for tiếp theo.
‫Tôi sẽ thêm một câu lệnh dòng sáng nhỏ ở đây nói rằng điều này đang in mảng của chúng ta bằng cách sử dụng vòng lặp for lồng
‫nhau.
‫Vậy vòng lặp for lồng nhau là gì?
‫Về cơ bản, nó là một vòng lặp for với một vòng lặp for khác bên trong nó.
‫Được chứ.
‫Vì vậy, ở đây chúng ta sẽ sử dụng bốn và chúng ta có thể sử dụng lại nhấn đúp.
‫Vì vậy, chúng tôi đi từ tôi không đến chiều dài.
‫Vì vậy, ở đây chúng ta cần nhập độ dài của lần lặp.
‫Vì vậy, những gì tôi sẽ làm ở đây là tôi sẽ sử dụng ma trận của mình, nhưng tất nhiên tôi có thể sử dụng độ dài ở
‫đây và điều này sau đó sẽ cho tôi độ dài của toàn bộ ma trận.
‫Vì vậy, về cơ bản là số lượng mục mà tôi có bên trong ma trận này, nhưng đó không phải là những gì tôi muốn.
‫Tôi muốn xem qua từng thứ nguyên, vì vậy tôi muốn xem qua từng thứ nguyên từng hàng và từng cột.
‫Vì vậy, thứ nguyên đầu tiên sẽ là các hàng.
‫Vì vậy, tôi có thể sử dụng một phương pháp mà mảng cung cấp.
‫Vì vậy, lớp mảng có phương thức get length này, nơi tôi cần truyền kích thước.
‫Vì vậy, điều này sẽ cho tôi số được đại diện hoặc bạn có thể thấy ở đây đại diện cho số phần tử trong
‫kích thước được chỉ định của mảng.
‫Vì vậy, trong trường hợp của tôi, nếu tôi nhập số 0, điều này sẽ trả về thứ nguyên 0, về cơ bản có nghĩa là các
‫hàng.
‫Vì vậy, điều này sẽ cung cấp cho tôi các hàng.
‫Vì vậy, bây giờ nếu tôi muốn lặp qua từng cột riêng lẻ, tôi cần sử dụng một vòng lặp for khác ở đây.
‫Vì vậy, đây sẽ là vòng lặp for bên trong của tôi giống như vòng lặp bên trong hoặc vòng lặp.
‫Và cái này ở đây.
‫Đây sẽ là vòng lặp for bên ngoài.
‫Được chứ.
‫Vì thế.
‫Tất nhiên, những gì chúng ta cần thay đổi bây giờ sẽ là tên biến lặp.
‫Vì vậy, ở đây chúng ta sẽ sử dụng J thay vì I.
‫Đó là một thực tế phổ biến.
‫Vì vậy, nếu bạn có một vòng lặp for bên trong, bạn thường sử dụng J ở đây để truy cập tên biến.
‫Nhưng bây giờ chúng ta muốn so sánh J không phải với độ dài của chiều thứ nhất, mà là của chiều thứ hai.
‫Vì vậy, chúng tôi nhập một ở đây.
‫Vì vậy, điều này bây giờ sẽ cho phép tôi xem qua từng cột.
‫Vì vậy, công việc vòng lặp for này sẽ đi qua các cột riêng lẻ và công việc vòng lặp for này sẽ
‫đi qua, toàn bộ sẽ đi qua các hàng riêng lẻ.
‫Vì vậy, điều đó có nghĩa là bây giờ chúng ta có thể tiếp tục.
‫Và chỉ cần làm đúng tuyên bố của chúng tôi ngay tại đây.
‫Nhưng sau đó, tất nhiên, chúng tôi không có một mục ở đây.
‫Vậy chúng ta có gì?
‫Chúng ta có ma trận, biến tĩnh mà chúng ta đã tạo ở đây.
‫Nhưng ma trận này, nó cần biết những mục nào nó nên hiển thị.
‫Vì vậy, tôi sẽ nói chỉ hiển thị I j có nghĩa là hiển thị F.
‫Hàng tại J. F. , về cơ bản có nghĩa là trong lần lặp đầu tiên, tôi sẽ bằng không.
‫Và sau đó chúng ta bắt đầu với vòng lặp for này và bốn vòng lặp này sẽ đi qua nó cho đến khi hoàn thành, và sau
‫đó nó sẽ chỉ chuyển đến lần lặp tiếp theo của vòng lặp for bên ngoài.
‫Vì vậy, chỉ sau đó tôi sẽ được tăng thêm một.
‫Vì vậy, điều đó có nghĩa là tôi sẽ giữ nguyên số 0 cho đến khi chúng ta trải qua vòng lặp for này, có nghĩa là chúng ta bắt
‫đầu từ 0 đối với I và sau đó chúng ta có J bằng 0 trong lần lặp đầu tiên.
‫Vì vậy, chúng tôi nhận được mục nhập đầu tiên, sau đó chúng tôi có J là một vì chúng tôi tăng lên khi chúng tôi
‫chạy qua dòng mã này và chúng tôi tăng nó lên một.
‫Vì vậy, bây giờ J sẽ là một và chúng tôi nói không một.
‫Vì vậy, vị trí không một trong ma trận của chúng ta sẽ là hai ở đây, sau đó J sẽ là
‫hai, sẽ là ba.
‫Và sau đó chúng tôi kiểm tra là.
‫Hai cộng một, sẽ tốt thôi, j được tăng lên sau lần lặp lại nhỏ hơn ba so với độ dài của thứ nguyên
‫hiện tại mà chúng ta đang xem xét.
‫Và thứ nguyên sẽ là thứ nguyên cột.
‫Vậy chúng ta có bao nhiêu cột?
‫Và trong trường hợp này, chúng ta có ba cột.
‫Vì vậy, ba không ít hơn ba, đó là lý do tại sao việc theo dõi này sẽ được thực hiện với quá trình thực thi của nó.
‫Và chúng ta lại đi đến vòng lặp for bên ngoài.
‫Vì vậy, lần này chúng tôi tăng gia số i.
‫Bởi một, có nghĩa là bây giờ tôi sẽ là một.
‫Và sau đó chúng ta thực hiện lại vòng lặp for này ba lần.
‫Vì vậy, chúng ta có I là một và J là 0 trong lần lặp đầu tiên của vòng lặp for bên trong này.
‫Sau đó, nó sẽ là một, sau đó nó sẽ là hai.
‫Vì vậy, về cơ bản nó sẽ đi qua mục này, sau đó đến mục này, rồi mục này, và mỗi lần
‫nó sẽ ghi nó lên bảng điều khiển và để lại một khoảng trống.
‫Và sau đó trong lần lặp thứ ba của vòng lặp for của chúng tôi hoặc ra khỏi vòng lặp ở đây, nó sẽ đi qua hàng cuối cùng, có thể
‫nói như vậy.
‫Vì vậy, đây là một lồng nhau cho.
‫Vòng.
‫Được chứ.
‫Vì vậy, hãy chạy nhanh thực sự này chỉ để xem liệu điều này có thực sự làm những gì tôi đang nói hay không.
‫Và bạn có thể xem ở đây.
‫Chà, có lẽ tôi nên in nó hơi khác một chút.
‫Nơi đây.
‫Tôi sẽ có một ngắt dòng khác.
‫Giống.
‫Vì vậy, chúng ta hãy thử điều này một lần nữa.
‫Vì vậy, bạn thấy, đây là mảng 2D của chúng tôi được in bằng cách sử dụng vòng lặp for lồng nhau.
‫Đây là cái này đây.
‫Đây là một trong những cho mỗi vòng lặp.
‫Và bây giờ tại thời điểm này, bạn có thể nói, này, lợi thế là gì, Dennis?
‫Điều này thậm chí có ý nghĩa?
‫Tôi không thích những gì bạn đang làm ở đó.
‫Tôi thích sử dụng cho mỗi vòng lặp.
‫Bạn thấy đấy, nó siêu đơn giản, rất ít mã mà tôi yêu cầu.
‫Chà, điều thú vị ở đây là tôi có quyền truy cập trực tiếp vào mặt hàng mà tôi hiện đang xem.
‫Vì vậy, ở đây trong trường hợp này, tôi chỉ lặp lại qua nó.
‫Nhưng điều gì sẽ xảy ra nếu tôi tiếp tục và gán một giá trị mới cho nó?
‫Giả sử tôi gán số 0 cho nó.
‫Vì vậy, bây giờ nếu bạn chạy điều này, chúng tôi sẽ nhận được một loạt các số không.
‫Ở đây, bạn thấy 0000.
‫Vì vậy, bây giờ tôi có thể tạo một logic mà tôi sẽ ghi đè lên giá trị, chẳng hạn, và điều đó không dễ
‫dàng đạt được với nó cho mỗi vòng lặp.
‫Đối với mỗi vòng lặp là siêu tuyệt vời.
‫Bạn chỉ hiển thị một thứ gì đó và chạy một số mã cho từng mặt hàng, nhưng không thay đổi cụ thể
‫bản thân mặt hàng đó vì mặt hàng đó chỉ là một vị trí lưu trữ ngắn hạn cho bất kỳ giá trị nào chúng
‫ta có bên trong.
‫Bộ sưu tập mà chúng tôi đang xem xét và đó là sự khác biệt đối với một vòng lặp lồng nhau và đó đã là một lợi thế mà
‫bạn thấy ở đây.
‫Nhưng có những lợi thế khác.
‫Và chúng ta sẽ xem xét thêm một số ví dụ về các vòng lặp for lồng nhau với ví dụ cụ thể mà chúng ta có
‫ở đây.
‫Chúng tôi sẽ điều chỉnh nó một chút trong video tiếp theo và bạn sẽ chẳng hạn
‫như xem cách bạn có thể lấy số chẵn hoặc số lẻ từ vòng lặp for của mình và sau đó cũng xem cách bạn có thể điều chỉnh nó sao
‫cho chỉ in, ví dụ, các phần tử đường chéo.
‫Bởi vì điều này sẽ cung cấp cho bạn một ý tưởng chung về những gì bạn có thể sử dụng cho các vòng lặp for hoặc lồng nhau for, các vòng lặp for.
‫Và về cơ bản bạn có rất nhiều quyền tự do trong lập trình và tôi chỉ muốn cung cấp cho bạn thêm một số công cụ để bạn
‫có thể sử dụng.
‫Vì vậy, tại thời điểm này, tôi muốn nói rằng chúng ta hãy chuyển sang video tiếp theo, nơi chúng ta sẽ xem xét điều đó.