‫ไม่เป็นไร.
‫ตอนนี้คุณรู้วิธีใช้อาร์เรย์และอาร์เรย์ 2 มิติแล้ว รวมทั้งสำหรับแต่ละลูปแล้ว มารวมสิ่งเหล่านี้เข้าด้วยกัน
‫มารวมแนวคิดในวิดีโอเดียวและหนึ่งตัวอย่าง แต่มาดูลูปที่ซ้อนกัน
‫ในวิดีโอนี้ เราจะพูดถึงคุณลักษณะต่างๆ เหล่านี้ แล้วเราจะดูว่าเมื่อใดควรใช้
‫nested for loop และข้อดีของการ nested for loop บน a สำหรับแต่ละลูปคืออะไร ตัวอย่างเช่น
‫อาร์เรย์หลายมิติ
‫เอาล่ะเรามาเริ่มกันเลย
‫อย่างแรกที่ฉันมีที่นี่คือ อย่างที่คุณเห็น ฉันมีเมทริกซ์นี้ ซึ่งเป็นอาร์เรย์สองมิติซึ่งมีสามรายการต่อแต่ละมิติ
‫ดังนั้น อย่างที่สาม แถวและสามคอลัมน์
‫ฉันจะใช้ the for each loop โดยใช้ the for each keyword ที่นี่ one และ tab
‫แล้วสิ่งนี้จะช่วยให้ฉันพิมพ์ได้อย่างรวดเร็วจริงๆ ว่ามันคือประเภทใด ฉันต้องการเรียกไอเท็มของคอลเล็กชันที่ฉันทำซ้ำ
‫และชื่อคอลเล็กชันอย่างไร
‫นี่เป็นเคล็ดลับเล็ก ๆ น้อย ๆ หากคุณต้องการเข้ารหัสได้เร็วขึ้น
‫ดังนั้นรายการจะเป็นประเภทจำนวนเต็มเพราะเราต้องการวนซ้ำผ่านเมทริกซ์นี้ซึ่งมีจำนวนเต็มอยู่ในนั้นและรายการที่เราเรียกมันว่ารายการเราสามารถเรียกมันว่า
‫num เพราะมันคือตัวเลข เราสามารถเรียกมันว่าองค์ประกอบ
‫นี่จะเป็นชื่อปกติที่คุณจะเห็นที่นี่ แต่ไอเท็มจะไม่เป็นไรสำหรับตอนนี้
‫แล้วคอลเล็กชันที่ฉันอยากจะทำซ้ำ จะเป็นเมทริกซ์ที่ฉันเตรียมไว้ที่นี่
‫และนั่นเป็นเหตุผลว่าทำไมฉันถึงต้องการทำให้เมทริกซ์นี้เป็นสแตติก เพราะฉันใช้มันในเมธอดหลักแบบสแตติกของฉัน
‫และคุณไม่สามารถใช้รายการหรือตัวแปรที่ไม่คงที่ภายในวิธีการหลักแบบคงที่หรือภายในวิธีการแบบคงที่โดยทั่วไป
‫ดังนั้นเพื่อที่จะวนซ้ำไปข้างหน้าในแต่ละลูปและแสดงรายการเมทริกซ์ เราสามารถไปข้างหน้าและใช้คำสั่งคอนโซลบรรทัดขวาที่นี่
‫ดู w double tab และที่นี่ฉันแค่จะบอกว่าแสดงรายการแล้วสร้างพื้นที่ว่าง
‫หรือสร้างพื้นที่ว่างจริง ๆ แล้วอย่าใช้เส้นสีแดง แต่ใช่
‫ดังนั้นสิ่งนี้จะเขียนในบรรทัดเดียวและไม่สร้างบรรทัดใหม่ตลอดเวลา
‫เอาล่ะ มาดำเนินการนี้กันอย่างรวดเร็ว
‫แล้วเราจะเห็นว่าเรามีหนึ่ง สอง สาม สี่ ห้า หก เจ็ด แปด เก้า
‫ดังนั้นรายการทั้งหมดที่เรามีในเมทริกซ์ของเราจึงถูกแสดง
‫เราใช้สิ่งนี้กับแต่ละลูปเพื่อผ่านทุกรายการภายในเมทริกซ์นี้ และมันก็แค่ไปจากซ้ายหรือบนซ้ายไปขวาล่าง
‫ในตัวอย่างของเราที่นี่
‫ตกลง.
‫ดังนั้นสำหรับแต่ละลูปจึงเป็นเครื่องมือที่ทรงพลัง
‫ช่วยให้เราดูคอลเล็กชันและเมทริกซ์ 2 มิติ เมทริกซ์ 3 มิติ ไม่ว่าคุณจะต้องการมีมิติข้อมูลมากเท่าใด
‫ทั้งหมดนี้เป็นเพียงคอลเล็กชันในท้ายที่สุด เพราะที่นี่เราใช้อาร์เรย์และอาร์เรย์เป็นประเภทของคอลเล็กชัน
‫และนี่คือสิ่งที่เราต้องการเพื่อให้แต่ละลูปวนซ้ำ
‫มันจึงวนซ้ำผ่านเมทริกซ์คอลเลกชันของเรา
‫ตอนนี้เราสามารถดำเนินการนี้ต่อไปเพื่อแสดงให้คุณเห็นว่าคุณจะทำสิ่งนี้ให้สำเร็จได้อย่างไรโดยใช้ nested for loop
‫ดังนั้น for each loop จึงมีประโยชน์อย่างยิ่งหากคุณต้องการดูทุกรายการในนั้น
‫แต่มีข้อเสียบางประการในบางสถานการณ์
‫ดังนั้นในกรณีที่คุณต้องการเปลี่ยนไอเท็มในตอนนี้ คุณไม่สามารถทำได้เพราะมันมีการป้องกัน
‫ดังนั้นคุณจึงไม่สามารถพูดต่อไปได้ว่ารายการควรเขียนทับด้วยสามเช่น
‫อย่างที่คุณเห็นที่นี่
‫ดังนั้นถ้าคุณลองแล้วมันบอกว่าไม่สามารถกำหนดให้กับรายการได้เพราะเป็นตัวแปรการวนซ้ำแต่ละตัว
‫มันไม่ใช่ของจริง มันเป็นแค่การจัดเก็บค่าเท่านั้น
‫ดังนั้นเราจึงเก็บค่าใดก็ตามที่เรากำลังดูจากคอลเล็กชันของเราและสิ่งที่เราเก็บไว้ที่นี่ มูลค่าของสิ่งนั้น
‫ดังนั้นในการทำซ้ำครั้งแรก มันคือหนึ่ง
‫ในการวนซ้ำครั้งที่สอง จะเป็น 2 ครั้ง แต่จริงๆ แล้วไม่ใช่ค่าของตัวเอง มันเป็นเพียงการอ้างอิงถึงค่าเท่านั้น
‫ดังนั้นสิ่งนี้ไม่ได้ช่วยเราจริงๆ
‫ดังนั้นถ้าเราต้องการจะปรับมันจริงๆ เราจำเป็นต้องมีบางอย่างเช่น nested for loop
‫มาสร้างลูปต่อไปกันเถอะ
‫ฉันจะเพิ่มคำสั่งบรรทัดที่สว่างขึ้นเล็กน้อยที่นี่โดยบอกว่านี่คือการพิมพ์อาร์เรย์ของเราโดยใช้การวนซ้ำที่ซ้อนกัน
‫ดังนั้นสิ่งที่ซ้อนกันสำหรับลูปคืออะไร?
‫โดยพื้นฐานแล้วมันเป็น for loop โดยมีอีกอันสำหรับลูปอยู่ข้างใน
‫ตกลง.
‫ในที่นี้เราจะใช้สี่และเราสามารถใช้การแตะสองครั้งอีกครั้ง
‫เราไปจาก I ศูนย์เป็นความยาว
‫ที่นี่เราต้องป้อนความยาวของการวนซ้ำ
‫สิ่งที่ผมจะทำตรงนี้คือผมจะใช้เมทริกซ์ของผม, แต่ผมสามารถใช้ความยาวตรงนี้ได้
‫และนี่จะให้ความยาวของเมทริกซ์ทั้งหมด
‫โดยพื้นฐานแล้วจำนวนของไอเท็มที่ฉันมีในเมทริกซ์นี้ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ
‫ฉันต้องการผ่านแต่ละมิติ ดังนั้นฉันต้องการผ่านมันไปทีละแถวและทีละคอลัมน์
‫ดังนั้นมิติแรกจะเป็นแถว
‫ดังนั้นฉันจึงสามารถใช้วิธีการที่อาร์เรย์เสนอได้
‫ดังนั้นคลาสอาร์เรย์จึงมีเมธอด get length ซึ่งฉันต้องส่งผ่านมิติ
‫นี่จะทำให้ฉันได้ตัวเลขที่แสดงออกมา หรือเพียงแค่คุณสามารถเห็นที่นี่ซึ่งแสดงถึงจำนวนองค์ประกอบในมิติที่ระบุของอาร์เรย์
‫ในกรณีของฉัน ถ้าฉันป้อนศูนย์ นี่จะคืนค่ามิติศูนย์ ซึ่งโดยทั่วไปหมายถึงแถว
‫นี่จะให้แถวแก่ฉัน
‫ตอนนี้ ถ้าฉันต้องการวนซ้ำในแต่ละคอลัมน์ ฉันต้องใช้คอลัมน์อื่นเพื่อวนซ้ำที่นี่
‫นี่จะเป็นวงในของฉันเหมือนวงในหรือวงใน
‫และอันนี้ออกที่นี่
‫นี่จะเป็นด้านนอกของลูป
‫ตกลง.
‫ดังนั้น.
‫สิ่งที่เราจำเป็นต้องเปลี่ยนตอนนี้ แน่นอน จะเป็นชื่อตัวแปรการวนซ้ำ
‫ในที่นี้เราจะใช้ J แทน I
‫นั่นเป็นธรรมเนียมปฏิบัติทั่วไป
‫ดังนั้นถ้าคุณมี inner for loop คุณมักจะใช้ J ที่นี่เพื่อตอบโต้ชื่อตัวแปร
‫แต่ตอนนี้เราต้องการเปรียบเทียบ J ไม่ใช่กับความยาวของมิติแรก แต่เป็นมิติที่สอง
‫ดังนั้นเราจึงป้อนที่นี่
‫ทีนี้นี่จะช่วยให้ผมดูทุกคอลัมน์ได้
‫งานนี้สำหรับลูปจะต้องผ่านแต่ละคอลัมน์และงานนี้สำหรับลูปจะผ่านไป
‫ทั้งหมดจะต้องผ่านแต่ละแถว
‫นั่นหมายความว่าตอนนี้เราสามารถไปข้างหน้าได้
‫และทำคำสั่งที่ถูกต้องของเราตรงนี้
‫แต่แน่นอนว่าเราไม่มีของที่นี่
‫แล้วเรามีอะไร?
‫เรามีเมทริกซ์ ตัวแปรสแตติกที่เราสร้างขึ้นที่นี่
‫แต่เมทริกซ์นี้ มันจำเป็นต้องรู้ว่ามันควรแสดงรายการใด
‫ดังนั้นผมจะบอกว่าแค่แสดง I j ซึ่งหมายถึงแสดง F
‫แถวที่ J. เอฟ ซึ่งโดยทั่วไปหมายถึงในการวนซ้ำครั้งแรกนี้ ฉันจะเป็นศูนย์
‫จากนั้นเราเริ่มด้วย this for loop และ 4 loop นี้จะผ่านมันไปจนกว่าจะเสร็จสิ้น จากนั้นมันจะไปที่การวนซ้ำถัดไปของ
‫outer for loop เท่านั้น
‫ดังนั้นฉันจะถูกเพิ่มขึ้นทีละหนึ่งเท่านั้น
‫นั่นหมายความว่าฉันจะเป็นศูนย์จนกว่าเราจะผ่านลูปนี้ไป ซึ่งหมายความว่าเราเริ่มต้นที่ศูนย์สำหรับฉัน
‫แล้วเราจะให้ J เป็นศูนย์ในการวนซ้ำครั้งแรก
‫ดังนั้นเราจึงได้รายการแรก จากนั้นเรามี J เป็นหนึ่งเพราะเราเพิ่มขึ้นเมื่อเราวิ่งผ่านโค้ดบรรทัดนี้
‫และเราเพิ่มมันขึ้นหนึ่งรายการ
‫ตอนนี้ J จะเป็นหนึ่งและเราบอกว่าศูนย์หนึ่ง
‫ดังนั้นตำแหน่งศูนย์หนึ่งในเมทริกซ์ของเราจะเท่ากับ 2 นี่ตรงนี้ แล้ว J จะเท่ากับ 2
‫ซึ่งก็คือ 3 นี่
‫แล้วเราตรวจสอบคือ
‫สองบวกหนึ่ง ซึ่งเป็นไปได้ด้วยดี j ถูกเพิ่มขึ้นหลังจากการวนซ้ำนั้นน้อยกว่าความยาวของมิติปัจจุบันที่เรากำลังดูอยู่สามเท่า
‫และมิติจะเป็นมิติคอลัมน์
‫แล้วเรามีกี่คอลัมน์?
‫และในกรณีนี้ เรามีสามคอลัมน์
‫ดังนั้นสามจึงไม่น้อยกว่าสาม ซึ่งเป็นเหตุให้การติดตามผลนี้เสร็จสิ้นด้วยการดำเนินการ
‫และเราไปที่ด้านนอกเพื่อวนซ้ำอีกครั้ง
‫คราวนี้เราเพิ่มการเพิ่มขึ้น i
‫โดยหนึ่งซึ่งหมายความว่าตอนนี้ฉันจะเป็นหนึ่ง
‫แล้วเราก็วนซ้ำสามครั้งอีกครั้ง
‫ดังนั้นเราจึงมีฉันเป็นหนึ่งและ J เป็นศูนย์ในการวนซ้ำครั้งแรกของวงในนี้
‫แล้วมันจะเป็นหนึ่ง แล้วก็จะเป็นสอง
‫ดังนั้นโดยพื้นฐานแล้วจะผ่านรายการนี้ จากนั้นจึงผ่านรายการนี้ จากนั้นจึงใช้รายการนี้
‫และทุกครั้งที่จะเขียนลงในคอนโซลและเว้นที่ว่างไว้
‫แล้วในการวนซ้ำครั้งที่สามของ for loop หรือ out of the loop ที่นี่ มันจะผ่านแถวสุดท้าย
‫นี่จึงเป็นการซ้อนสำหรับ
‫ห่วง.
‫ตกลง.
‫ลองทำสิ่งนี้โดยด่วนเพื่อดูว่านี่จะเป็นไปตามที่ฉันพูดจริงหรือไม่
‫และคุณสามารถดูได้ที่นี่
‫บางทีฉันควรพิมพ์ให้ต่างออกไปเล็กน้อย
‫ที่นี่.
‫ฉันจะมีการแบ่งบรรทัดอื่น
‫ชอบ.
‫เลยลองใหม่อีกครั้ง
‫คุณจะเห็นว่านี่คืออาร์เรย์ 2 มิติของเราที่พิมพ์โดยใช้ nested for loop
‫ตัวนี้นี่เอง
‫อันนี้เป็นสำหรับแต่ละลูป
‫และ ณ จุดนี้ คุณอาจพูดว่า เฮ้ ข้อดีคืออะไร เดนนิส
‫สิ่งนี้สมเหตุสมผลหรือไม่?
‫ฉันไม่ชอบสิ่งที่คุณทำที่นั่น
‫ฉันชอบที่จะใช้ for each loop
‫คุณจะเห็นว่ามันง่ายมาก โค้ดเพียงเล็กน้อยที่ฉันต้องการ
‫ที่เจ๋งตรงที่นี่คือฉันสามารถเข้าถึงไอเท็มที่ฉันกำลังดูอยู่ได้โดยตรง
‫ในกรณีนี้ ผมแค่วนซ้ำไปมา
‫แต่ถ้าฉันจะไปข้างหน้าและกำหนดค่าใหม่ให้กับมัน
‫สมมติว่าฉันกำหนดศูนย์ให้กับมัน
‫ตอนนี้ถ้าคุณรันสิ่งนี้ เราจะได้เลขศูนย์จำนวนหนึ่ง
‫ที่นี่คุณเห็น 0000
‫ดังนั้น ตอนนี้ฉันจึงสามารถสร้างตรรกะที่ฉันจะเขียนทับค่าได้ เช่น เขียนทับค่า ซึ่งมันไม่สามารถทำได้ง่ายๆ
‫สำหรับแต่ละลูป
‫สำหรับแต่ละวงนั้นยอดเยี่ยมมาก
‫คุณเพียงแค่แสดงบางอย่างและเรียกใช้โค้ดสำหรับทุกๆ รายการ แต่ไม่ได้เปลี่ยนเฉพาะรายการเอง
‫เนื่องจากรายการดังกล่าวเป็นเพียงสถานที่จัดเก็บระยะสั้นสำหรับค่าใดก็ตามที่เรามีอยู่ภายใน
‫คอลเล็กชันที่เรากำลังดูอยู่ ซึ่งแตกต่างกันสำหรับลูปที่ซ้อนกัน และนั่นเป็นข้อดีอย่างหนึ่งที่คุณเห็นที่นี่
‫แต่มีข้อดีอื่น ๆ
‫และเราจะดูตัวอย่างเพิ่มเติมของ nested for loops ด้วยตัวอย่างเฉพาะที่เรามีที่นี่
‫เราจะปรับมันเล็กน้อยในวิดีโอหน้า ตัวอย่างเช่น ดูว่าคุณจะได้รับเลขคู่หรือเลขคี่จาก
‫for loop ของคุณอย่างไร แล้วดูว่าคุณสามารถปรับค่าได้อย่างไรเพื่อที่คุณจะได้ พิมพ์เท่านั้น ตัวอย่างเช่น องค์ประกอบในแนวทแยง
‫เนื่องจากสิ่งนี้จะทำให้คุณมีความคิดทั่วไปเกี่ยวกับสิ่งที่คุณสามารถใช้สำหรับลูปสำหรับหรือที่ซ้อนกันเพื่อ, ลูปสำหรับ
‫และโดยพื้นฐานแล้วคุณมีอิสระในการเขียนโปรแกรมมาก และฉันแค่อยากให้เครื่องมือเพิ่มเติมที่คุณสามารถใช้ได้
‫ณ จุดนี้ ฉันจะบอกว่าไปที่วิดีโอหน้าที่เราจะดูกัน