‫حسنا.
‫والآن بعد أن عرفت كيفية استخدام المصفوفات والمصفوفات ثنائية الأبعاد بالإضافة إلى كل حلقة ، دعنا ندمج تلك
‫المفاهيم في فيديو واحد ومثال واحد ، ولكن دعونا أيضًا نلقي نظرة على حلقات for المتداخلة.
‫لذلك في هذا الفيديو ، سنستعرض هذه الميزات المختلفة ثم سنرى متى نستخدم حلقة for
‫متداخلة وما هي مزايا حلقة for متداخلة على a لكل حلقة عندما يتعلق الأمر ، على سبيل
‫المثال ، صفائف متعددة الأبعاد.
‫حسنًا ، فلنبدأ.
‫أول شيء لدي هنا ، كما ترون ، لدي هذه المصفوفة وهي عبارة عن مصفوفة ثنائية
‫الأبعاد بها ثلاثة عناصر في اتجاه كل بُعد ، أي ثلاثة صفوف وثلاثة أعمدة ، إذا جاز التعبير.
‫لذلك سأستخدم حلقة for كل باستخدام كل كلمة رئيسية هنا هذه واحدة وعلامة التبويب.
‫وسيسمح لي هذا بعد ذلك بالكتابة بسرعة كبيرة عن نوعها ، وكيف أريد
‫تسمية عنصر المجموعة الذي أكرره واسم المجموعة.
‫لذا فهذه حيلة صغيرة أنيقة إذا كنت تريد أن تصبح ترميزًا أسرع.
‫لذا سيكون العنصر من النوع الصحيح لأننا نريد التكرار من خلال هذه المصفوفة التي تحتوي على
‫مجموعة من الأعداد الصحيحة والعنصر الذي يمكننا تسميته عنصرًا ، يمكننا تسميته num لأنه رقم ، يمكننا
‫تسميته عنصر.
‫سيكون هذا في الأسماء العادية التي قد تراها هنا ، ولكن العنصر سيكون على ما يرام في الوقت الحالي.
‫وبعد ذلك ستكون المجموعة التي أرغب في تكرارها هي المصفوفة التي أعددتها هنا.
‫وهذا أيضًا هو السبب الذي جعلني أحتاج إلى جعل هذه المصفوفة ثابتة ، لأنني أستخدمها
‫داخل طريقي الأساسي الثابت.
‫ولا يمكنك استخدام عناصر أو متغيرات غير ثابتة داخل الأسلوب الأساسي الثابت أو داخل الطرق الثابتة
‫بشكل عام.
‫لذلك من أجل التكرار للأمام من خلال هذا لكل حلقة وعرض عناصر المصفوفة ، يمكننا فقط المضي قدمًا
‫واستخدام بيان السطر الأيمن لوحدة التحكم هنا.
‫انظر إلى علامة التبويب المزدوجة وهنا سأقول فقط عرض العنصر ثم عمل مساحة فارغة.
‫أو قم بإنشاء مساحة فارغة ودعنا في الواقع لا نستخدم الخط الأحمر ، ولكن بشكل صحيح.
‫لذا فإن هذا سيكتبه في سطر واحد فقط ولن ينشئ سطرًا جديدًا طوال الوقت.
‫الآن ، دعونا نجري هذا بسرعة حقيقية.
‫وسنرى أن لدينا واحد ، اثنان ، ثلاثة ، أربعة ، خمسة ، ستة ، سبعة ، ثمانية ، تسعة.
‫لذلك يتم عرض جميع العناصر الموجودة لدينا هنا في المصفوفة.
‫لذلك نحن نستخدم هذا لكل حلقة لتصفح كل عنصر داخل هذه المصفوفة ، وهي تنتقل فقط من
‫اليسار أو أعلى اليسار إلى أسفل اليمين ، إذا جاز التعبير ، في مثالنا هنا.
‫تمام.
‫لذلك لكل حلقة أداة قوية.
‫يسمح لنا بالمرور عبر مجموعة ومصفوفة ثنائية الأبعاد ، مصفوفة ثلاثية الأبعاد ، مهما كانت الأبعاد التي
‫تريدها.
‫كل هؤلاء في النهاية مجرد مجموعات ، لأننا هنا نستخدم مصفوفة والمصفوفة هي نوع من مجموعة
‫وهذا ما نحتاجه لإعطاء كل حلقة للتكرار من خلالها.
‫لذلك فإنه يتكرر من خلال مصفوفة المجموعة الخاصة بنا.
‫الآن يمكننا المضي قدمًا واستخدام هذا لنوضح لك كيف يمكنك تحقيق ذلك باستخدام حلقة for متداخلة.
‫لذا فإن كل حلقة مفيدة للغاية إذا كنت تريد فقط استعراض كل عنصر
‫فيها ، ولكن لها عيوب معينة من حيث مواقف معينة.
‫لذلك في حالة رغبتك الآن في تغيير العنصر ، لا يمكنك القيام بذلك لأنه محمي.
‫لذلك لا يمكنك المضي قدمًا والقول أنه يجب الآن الكتابة فوق العنصر بثلاثة ، على سبيل المثال.
‫كما ترون هنا.
‫لذلك إذا حاولت أن تقول أنه لا يمكن التخصيص للعنصر لأنه متغير لكل متغير.
‫لذلك فهو ليس العنصر الفعلي ، إنه في الحقيقة مجرد تخزين القيمة ، إذا جاز التعبير.
‫لذلك نقوم بتخزين أي قيمة نبحث عنها حاليًا من مجموعتنا وما نخزنه هنا ، قيمة
‫ذلك.
‫لذا في التكرار الأول ، إنه واحد.
‫في التكرار الثاني ، يكون العدد اثنان ، ولكنه لا يمثل القيمة نفسها أبدًا ، إنه مجرد مرجع
‫للقيمة.
‫لذلك هذا لا يساعدنا حقًا.
‫لذا إذا أردنا تعديلها بالفعل ، فسنحتاج إلى شيء مثل حلقة for المتداخلة.
‫فلنبدأ هنا وننشئ حلقة for تالية.
‫سأقوم بإضافة عبارة خط ساطع قليلاً هنا بالقول إن هذا يطبع المصفوفة الخاصة بنا باستخدام حلقة for متداخلة.
‫إذن ما هي حلقة for المتداخلة؟
‫حسنًا ، إنها في الأساس حلقة for مع حلقة for أخرى بداخلها.
‫تمام.
‫سنستخدم هنا أربعة ويمكننا استخدام النقر المزدوج مرة أخرى.
‫لذا ننتقل من I صفر إلى الطول.
‫إذن علينا هنا إدخال طول التكرار.
‫إذن ما سأفعله هنا هو أنني سأستخدم المصفوفة الخاصة بي ، لكن يمكنني بالطبع استخدام الطول
‫هنا وهذا سيعطيني بعد ذلك طول المصفوفة بأكملها.
‫إذن عدد العناصر الموجودة لدي داخل هذه المصفوفة ، لكن هذا ليس ما أريده.
‫أريد أن أتصفح كل بُعد ، لذلك أريد أن أخوضه صفاً بصف وعموداً بعد عمود.
‫لذلك سيكون البعد الأول هو الصفوف.
‫لذلك يمكنني استخدام طريقة تعرض المصفوفات.
‫لذا فإن فئة المصفوفة لديها طريقة الحصول على الطول حيث أحتاج إلى تمرير البعد.
‫هذا سيوفر لي الرقم الذي تم تمثيله أو يمكنك فقط أن ترى هنا يمثل عدد العناصر في البعد
‫المحدد للمصفوفة.
‫لذا في حالتي ، إذا أدخلت صفرًا ، فسيعيد هذا الآن البعد الصفري ، وهو ما يعني في الأساس الصفوف.
‫لذلك هذا سوف يعطيني الصفوف.
‫إذا أردت الآن تكرار كل عمود على حدة ، فأنا بحاجة إلى استخدام حلقة for أخرى هنا.
‫لذلك سيكون هذا هو حلقة for الداخلية الخاصة بي مثل حلقة داخلية أو حلقة.
‫وهذا هنا.
‫هذه ستكون حلقة for الخارجية.
‫تمام.
‫لذا.
‫ما نحتاج الآن إلى تغييره ، بالطبع ، سيكون اسم متغير التكرار.
‫لذلك سنستخدم J بدلاً من I هنا.
‫هذه ممارسة شائعة.
‫لذلك إذا كان لديك حلقة for داخلية ، فعادة ما تستخدم J هنا لتعويض اسم المتغيرات.
‫لكننا نريد الآن مقارنة J ليس بطول البعد الأول ، ولكن بطول البعد الثاني.
‫لذا ندخل واحدًا هنا.
‫لذلك سيسمح لي هذا الآن بالمرور عبر كل عمود.
‫لذا فإن مهمة التكرار هذه هي المرور عبر الأعمدة الفردية وستتم متابعة مهمة التكرار هذه ، وسيكون
‫الكل هو المرور عبر الصفوف الفردية.
‫هذا يعني أنه يمكننا الآن المضي قدمًا.
‫ونفعل فقط بياننا الصحيح هنا.
‫ولكن بعد ذلك ، بالطبع ، ليس لدينا عنصر هنا.
‫اذن ماذا عندنا؟
‫حسنًا ، لدينا المصفوفة ، المتغير الثابت الذي أنشأناه هنا.
‫لكن هذه المصفوفة تحتاج إلى معرفة العناصر التي يجب أن تعرضها.
‫سأقول فقط عرض I j مما يعني عرض F.
‫Row at the J. F. العمود ، والذي يعني بشكل أساسي في التكرار الأول ، أنني سأكون صفرًا.
‫ثم نبدأ بحلقة for هذه وستمر هذه الحلقة الأربع عبرها حتى تنتهي ، وبعد ذلك ستنتقل فقط
‫إلى التكرار التالي للحلقة for الخارجية.
‫عندها فقط سأزداد بواحد.
‫هذا يعني أنني سأبقى صفرًا حتى نمر عبر حلقة for هذه ، مما يعني أننا نبدأ من الصفر
‫بالنسبة لـ I ثم لدينا J يساوي صفرًا في التكرار الأول.
‫إذن نحصل على الإدخال الأول ، ثم لدينا J واحدًا لأننا زدنا بمجرد تشغيلنا عبر هذا السطر من
‫التعليمات البرمجية وزيادته بمقدار واحد.
‫إذن ، الآن J ستكون واحدًا ونقول صفرًا واحدًا.
‫إذن ، الموضع صفر واحد من المصفوفة سيكون هذين هنا ، ثم J سيكون اثنين ، وهو ما سيكون
‫هذا الثلاثة.
‫ثم نتحقق من ذلك.
‫اثنان زائد واحد ، وهو ما سيكون جيدًا ، عندما تزداد j بعد التكرار أقل بثلاثة من طول ذلك البعد
‫الحالي الذي ننظر إليه.
‫وسيكون البعد هو بُعد العمود.
‫إذن كم عدد الأعمدة لدينا؟
‫وفي هذه الحالة لدينا ثلاثة أعمدة.
‫إذن ، ثلاثة لا تقل عن ثلاثة ، وهذا هو السبب في أن هذه المتابعة ستتم مع تنفيذها.
‫ونذهب إلى الحلقة الخارجية مرة أخرى.
‫لذا هذه المرة نزيد الزيادة i.
‫بواحد ، مما يعني أنني سأكون الآن واحدًا.
‫ثم نمر عبر حلقة for ثلاث مرات مرة أخرى.
‫إذن لدينا أنا واحد و J يساوي صفرًا في التكرار الأول لهذه الحلقة for الداخلية.
‫ثم ستكون واحدة ، ثم ستكون اثنين.
‫لذلك سوف يمر بشكل أساسي عبر هذا العنصر ، ثم هذا العنصر ، ثم هذا العنصر ، وفي كل
‫مرة سيكتبه على وحدة التحكم ويترك مساحة فارغة.
‫ثم في التكرار الثالث لحلقة for أو خارج الحلقة هنا ، ستمر خلال الصف الأخير ، إذا جاز
‫التعبير.
‫لذلك هذا هنا متداخل لـ.
‫عقدة.
‫تمام.
‫لذلك دعونا نجري هذه السرعة الحقيقية فقط لنرى ما إذا كان هذا سيفعل ما أقوله.
‫ويمكنك أن ترى هنا.
‫حسنًا ، ربما يجب أن أطبعها بشكل مختلف قليلاً.
‫هنا.
‫سأحصل على فاصل سطر آخر.
‫يحب.
‫لذلك دعونا نجرب هذا مرة أخرى.
‫هذا هو المصفوفة ثنائية الأبعاد المطبوعة باستخدام حلقة for المتداخلة.
‫هذا هو واحد هنا.
‫كان هذا واحدًا لكل حلقة.
‫والآن في هذه المرحلة ، قد تقول ، مهلاً ، ما هي الميزة ، دينيس؟
‫هل هذا منطقي اصلا؟
‫لا يعجبني ما تفعله هناك.
‫أفضل استخدام كل حلقة.
‫كما ترى ، الأمر بسيط للغاية ، القليل جدًا من التعليمات البرمجية التي طلبتها.
‫حسنًا ، الشيء الرائع هنا هو أنه لدي وصول مباشر إلى العنصر الذي أبحث عنه حاليًا.
‫لذا هنا في هذه الحالة ، أنا فقط أكررها.
‫ولكن ماذا لو تقدمت وخصصت قيمة جديدة لها؟
‫لنفترض أنني خصصت صفرًا لها.
‫الآن إذا قمت بتشغيل هذا ، فسنحصل على مجموعة من الأصفار.
‫هنا ، ترى 0000.
‫لذا يمكنني الآن إنشاء منطق يمكنني من خلاله ، على سبيل المثال ، الكتابة فوق القيمة ، ولا يمكن تحقيق
‫ذلك بسهولة باستخدامه لكل حلقة.
‫لكل حلقة رائعة للغاية.
‫أنت تقوم فقط بعرض شيء ما وتشغيل بعض التعليمات البرمجية لكل عنصر على حدة ، ولكن لا
‫تقوم بتغيير العنصر نفسه على وجه التحديد لأن العنصر هو مجرد موقع تخزين قصير المدى لأي قيمة
‫لدينا داخل.
‫المجموعة التي نبحث عنها ، والتي تختلف بالنسبة للحلقة المتداخلة ، وهذه بالفعل إحدى الميزات التي
‫تراها هنا.
‫لكن هناك مزايا أخرى.
‫وسنلقي نظرة على بعض الأمثلة الأخرى لحلقات for المتداخلة مع هذا المثال المحدد الذي لدينا
‫هنا.
‫سنقوم بتعديله قليلاً في الفيديو التالي ، وستقوم ، على سبيل المثال
‫، بمشاهدة كيف يمكنك الحصول على أرقام زوجية أو أرقام فردية من حلقة for الخاصة بك ، ثم ترى أيضًا كيف يمكنك تعديلها بحيث اطبع
‫فقط ، على سبيل المثال ، العناصر القطرية.
‫لأن هذا سيمنحك فكرة عامة عما يمكنك استخدامه حلقات for أو متداخلة من أجل حلقات.
‫وفي الأساس لديك الكثير من الحرية في البرمجة وأردت فقط أن أعطيك المزيد من الأدوات التي يمكنك
‫استخدامها.
‫لذا في هذه المرحلة ، أود أن أقول لننتقل إلى الفيديو التالي حيث سننظر فيه.