أهلا ومرحبا. في هذه المحاضرة أريد أن أتحدث عن الحلقات المتداخلة والتحكم في الحلقة.
الحلقات المتداخلة ، الحلقات داخل الحلقات ، التحكم في الحلقة له علاقة
بعبارات الاستراحة والمتابعة.
حلقات متداخلة حتى.
هناك أوقات تريد فيها وضع حلقة واحدة داخل حلقة أخرى.
إنه منطقي تمامًا.
على سبيل المثال ، قد
ترغب في حساب عدد الساكنين في كل منزل في الشارع.
إذن ما ستفعله هو أن يكون لديك حلقة خارجية حيث تنتقل من منزل إلى منزل.
وبعد ذلك كل منزل كنت بداخله ، يمكنك حساب عدد الساكنين.
لذلك آمل أن تتمكن من تصور أو فهم كيف يمكن أن تكون حلقة متداخلة.
مرة أخرى ، الحلقة الخارجية تمر عبر جميع المنازل.
وبعد ذلك ، لكل تكرار للحلقة الخارجية لكل منزل تصادفه ، ستدخل داخل
المنزل ويكون لديك حلقة لإحصاء كل الأشخاص.
هذا نوع من حالات الاستخدام عندما تريد بالفعل
استخدام حلقة متداخلة في c.
هنا مثال. يبدو تمامًا كما لو كنت تعتقد
أنها ستبدو حلقة داخل حلقة ليست معقدة للغاية.
في هذا المثال ، نستخدم حلقات for لـ.
الحلقات جيدة لأنه يمكننا تهيئة متغير التحكم في الحلقة ،
والتحقق من الحالة لدينا ومتغير التحكم في حلقة التعديل لدينا في سطر واحد.
لذلك هذه الحلقة الخارجية والإشارة إليها على أنها الحلقة الداخلية الخارجية.
الحلقة الخارجية هي بالضبط ما تدل عليه. إنها الحلقة الموجودة في الخارج.
ويمكن أن يكون لديك العديد والعديد من طبقات التعشيش المختلفة. يمكن أن يكون لديك العديد من
الحلقات الداخلية.
في هذه الحالة ، نحن نمر بحلقة مضبوطة
بشكل معاكس ، نبدأ من واحد وسنعمل على طول الطريق للعد.
لا نعرف ما هو العدد هنا ، لا يهم.
في جسم الحلقة for ، نقول إن المجموع يساوي 0. نحن بصدد تهيئة المجموع للحلقة الداخلية.
ثم داخل الحلقة الداخلية ، نرى حلقة for أخرى لـ و j يساوي 1 ،
و j أقل من يساوي I و زائد زائد j. ثم نقول مجموع زائد يساوي j.
نحن نحسب مجموع الأعداد الصحيحة من 1 إلى 1.
ما يفعله هذا في الواقع هو إدخال الرقم 5.
وللتكرار الأول للحلقة
، فإنك تجمع 1 2 3 4 و 5.
بالنسبة للتكرار التالي
للحلقة ، فأنت تقوم بجمع 2 3 4 5.
بالنسبة للتكرار الثالث للحلقة ، فأنت تجمع 3 4 5 وما إلى ذلك.
لذا فإن الحلقات الداخلية ضرورية خاصة بناءً على حالة الاستخدام ، مجرد
حلقة داخل الحلقة تمامًا.
سترى ذلك قليلاً.
لا تخجل من ذلك. اعتمادًا على ما عليك القيام به والمشكلة التي تحاول حلها
، غالبًا ما يتم استخدامه قليلاً.
وإلى هذه النقطة ، ليست دائمًا حلقة for داخل حلقة for ، يمكنك الحصول على
حلقة while داخل حلقة for. هل يمكن أن يكون لديك أثناء حلقة داخل
حلقة for ، لا يهم.
في هذا المثال ، نفس
المثال الدقيق باستثناء الآن داخل جسم الحلقة for ، لدينا حلقة
متداخلة حلقة داخلية تسمى باستخدام الكلمة الأساسية while.
لذلك ما زلنا نحسب بعض الأعداد الصحيحة من 1 إلى 1.
لدينا بعض التهيئة خارج حلقة while.
لدينا حالة داخل فحص while ، ولدينا
مجاميعنا داخل جسم الحلقة while حيث تم تعديلنا
وهو متغير التحكم في الحلقة الذي نقوم بتعديله.
إذن ، مجموع زائد يساوي ، ثم نقوم بتعديل متغير التحكم في الحلقة باستخدام موجب زائد j.
إذا لم نعدّل زائد زائد j ، فسنحصل على حلقة لانهائية للحلقة while.
لكنها تقوم بنفس الإخراج ، إنها تستخدم حلقة while فقط كحلقة متداخلة بدلاً من حلقة for.
لذا فإن التعشيش لا يختلف حقًا عما هو عليه عندما تقوم بتداخل أي شيء.
قمت بتداخل عبارات if ، إذا كانت عبارات if داخل عبارات if ، فإن عبارات
التكرار المتداخلة تتكرر داخل الحلقات.
للابتعاد عن مفهوم الحلقات المتداخلة
، دعنا نتحدث عن عبارة المتابعة.
حتى هذه النقطة عندما تحدثنا عن الحلقات ، قمنا
دائمًا بتنفيذ الحلقة عدة مرات بناءً على شرط الخروج ، التعبير
المنطقي الذي يتم تقييمه على خطأ.
ومع ذلك ، هناك أوقات تريد فيها على وجه التحديد إنهاء الحلقة مبكرًا
أو تريد الاستمرار في التكرار التالي
للحلقة دون القيام بأي شيء.
في الحالة الأخيرة ، يمكنك الاستمرار دون فعل أي شيء
، والتخطي بشكل أساسي ، يمكنك استخدام
تعليمة المتابعة للقيام بذلك.
إذن ، فإن تعليمة المتابعة في جسم الحلقة تفعل ما يلي.
وقبل كل شيء ، إذا كنت ترغب في بدء هذا ، فكل ما عليك فعله هو وضع الكلمة الأساسية
للمتابعة متبوعة بفاصلة منقوطة في نص الحلقة.
ولكن ما ستفعله هو أنها ستتخطى هذا التكرار
بشكل أساسي. لذلك لن يتم تنفيذ أي شيء
تابع أسفل المتابعة إذا كان داخل جسم الحلقة.
لذا ، استمر في كثير من الأحيان ، نريد أن نكون في الجزء العلوي من الحلقة
بناءً على بعض الشروط ، وعادةً ما يتم تغليفها في عبارة if.
إذا حدث هذا موقفًا خاصًا ، فأنا لا أرغب في تنفيذ أي من
التعليمات البرمجية في نص الحلقة ، ما عليك سوى
تخطي هذا التكرار والتحقق في المرة القادمة.
ومرة أخرى ، الأمر محير بعض الشيء لأنك تتخطى تكرارًا وتقفز في الأرجاء ، لكنها
صالحة ، وهي طريقة لإجراء فحوصات متعددة.
لذلك على الرغم من وجود شرط خروج الحلقة داخل التعبير المنطقي
، يمكنك إجراء فحص آخر.
وهذا الاختيار لن يخرج من الحلقة ، لكنه سيتخطى
التكرار.
لذلك يتم استخدامه مرة أخرى للحالة عندما تريد تخطي التكرار. ميزة أنه يمكنك استخدام متابعة
وسوف تقضي على الكثير من التعشيش.
سيؤدي ذلك أيضًا إلى التخلص من الكثير من عبارات if الإضافية داخل كتلة الحلقات.
لذلك يمكنها تحسين قابلية القراءة عندما
تكون العبارات طويلة جدًا أو عندما يكون لديك تداخل عميق.
لذلك إذا وجدت أنك تقوم بالكثير من التعشيش.
قد ترغب في القول ، ربما يمكنني استخدام المتابعة بدلاً من ذلك.
أو إذا وجدت أن لديك الكثير من عبارات if التي
تقوم بأشياء معينة داخل جسم الحلقة ، فربما تريد الاستمرار.
لا تستخدم المتابعة إذا كانت تعقد الشفرة بدلاً من تبسيطها.
لا تستخدم المتابعة إذا كنت لا تعرف ما تفعله.
هذا مثال على المتابعة.
في هذا المثال ، نقوم بإنشاء تعداد جديد لنوع اليوم ، ونقول أن
القيم الصالحة هي الاثنين الثلاثاء الأربعاء الخميس الجمعة السبت الأحد.
ثم لدينا حلقة for حيث نقوم بتهيئة التعداد الخاص
بنا إلى يوم الاثنين ، ونقول إنه
طالما أن اليوم أقل من يوم الأحد ، فهذا شرط
للخروج ثم نقول زائد زائد اليوم.
قد تسأل نفسك السؤال كيف نزيد التعداد؟
حسنًا ، تذكر أن العدد الموجود أسفل الغطاء هو عدد صحيح.
لذا يمكنك أن تقول يوم زائد زائد في التعداد وهذا سيزيده إلى اليوم التالي.
تذكر ، الاثنين يساوي 0 ، الثلاثاء يساوي 1 ،
الأربعاء يساوي 2 ، كل ترتيب القائمة.
جيد جدًا لزيادة التعدادات.
في حلقة for إذا كان يوم الأربعاء ، نريد
التخطي. لا نريد أن نفعل أي شيء. لا نريد الطباعة.
لذلك نقول استمر. إذا تساوى اليوم مع الأربعاء
، فتابع. سوف يتخطى خط الطباعة. ستعود إلى أعلى الحلقة
، وستقوم بتنفيذ التكرار التالي.
ومن ثم سيكون يوم الخميس.
لن تكون مساوية يوم الأربعاء ، لذا لن يتم التخطي.
سوف يتجه لأسفل مباشرةً ويطبع أنه ليس يوم الأربعاء.
إذن هذه حالة استخدام شائعة ، مثال شائع لاستخدام متابعة ، بناء جملة سهل الاستخدام للغاية ، مجرد كلمة رئيسية
بسيطة متبوعة بالفاصلة المنقوطة.
الحالة الأخرى حيث قد ترغب في القيام بشيء غريب في الحلقة هي
إذا كنت تريد الخروج مبكرًا.
لذلك عادةً بعد إدخال الجسم في الحلقة ، سيقوم
البرنامج بتنفيذ جميع العبارات الموجودة في جسم الحلقة
ولكل تكرار ، ثم يقوم بالتحقق والقفز للخارج.
ونعرف كيف تعمل المتابعة التي تقوم بتخطي مختلف قليلاً.
هناك عبارة أخرى يمكن أن تغير تنفيذ جميع العبارات في الحلقة
، تسمى كسر.
ويجب أن يكون هذا مألوفًا إلى حد ما لأننا نستخدم الكلمة الأساسية break عندما تحدثنا
عن بيان التبديل.
تذكر ، عندما كانت لدينا قضايانا ، كنا نخرج القضايا بهذه الطريقة.
حسنًا ، يمكنك أيضًا استخدام الكلمة الأساسية break داخل الحلقة.
وما سيفعله هذا هو أنه سيقفز خارج الحلقة.
لذا فإن تعليمة break ستؤدي إلى خروج البرنامج فورًا من الحلقة ، وهي قيد التنفيذ.
يتم تخطي العبارات الموجودة في الحلقة ويتم إنهاء تنفيذ الحلقة.
إذن أنت تقفز من الحلقة.
أنت تنفذ في وقت مبكر. إذا كانت تعليمة break داخل حلقات متداخلة ، فإنها ستؤثر فقط
على الحلقة الداخلية التي تحتوي عليها. ستقفز فقط من الحلقة التي أنت فيها.
وللقيام بذلك ، يمكنك استخدام فاصل الكلمات الأساسية متبوعًا بفاصلة منقوطة.
غالبًا ما يتم استخدام الاستراحة لترك حلقة عندما يكون هناك سببان منفصلان للمغادرة.
لقد ذكرت سابقًا أنه قد يكون لديك سبب آخر حيث تريد تخطي التكرار
، ولكن إذا كان هناك سببان ، شرطان حيث تريد القفز من حلقة ، يمكنك استخدام
استراحة.
إذا كان لديك شرط واحد
فقط ، فهذا هو الشرط فقط ، داخل الحلقة نفسها وداخل أقواس الوقت
أو قبل الفاصلة المنقوطة الثانية في الحلقة for.
كما تستخدم استراحة في عبارات التبديل ، كما ذكرت.
لذلك أردت فقط أن أذكرك بذلك. لا تجعلهم مرتبكين.
هم في الأساس يفعلون نفس الأشياء على الرغم من ذلك. يقفزون خارج الكود.
سيؤدي كسر بيان التبديل إلى الخروج من عبارة
التبديل هذه تمامًا ، وكسر حلقة سيقفز من تلك الحلقة.
حسنًا ، هذا مثال. لدينا حلقة من الوقت.
نحن نطبع بعض الأعداد الصحيحة.
نحن نقرأ في بعض الأعداد الصحيحة. لدينا حلقة متداخلة.
داخل حلقة while المتداخلة ، نتحقق
مما تم إدخاله. وإذا كانت أكبر من 100 ، فنحن نريد
القفز من تلك الحلقة الداخلية. لذلك نقوم به.
ثم في الحلقة الخارجية ، علينا إجراء فحص آخر. إذا كانت أكبر من 100 ، فإننا نخرج
من تلك الحلقة الخارجية.
إذا لم يكن لديك الفاصل الثاني ، فلن تقفز أبدًا من الحلقة الخارجية الثانية.
في هذه الحالة ، هذا يذكرني بالمكان الذي يمكنك استخدام الذهاب إليه.
تخيل لو كان لديك 5 متداخلة ، 5 طبقات متداخلة ، أثناء التكرار داخل حلقة
while داخل حلقة while داخل حلقة while داخل حلقة while.
إذا كنت ستستخدم الفاصل فقط لمحاولة القفز من
الحلقات ، فستحصل على كل عبارات if هذه في كل حلقة لتقفز بها.
بدلاً من القيام بكل هذه العبارات
، يمكنك الذهاب إلى. سيقفز go to من جميع حلقات حالة الحلقة في أمر واحد.
هذه حالة استخدام للذهاب إلى. لكن في هذه الحالة ، نحن فقط نعرض
فترات راحة ونتأكد من أنك تفهم أنك تخرج للتو من
تلك الحلقة التي تكون بداخلها.
وفي هذه الحالة ، نكسر حلقتين.
إذن هذان هما المثالان ، الكلمتان الأساسيتان اللتان لا يمكنك فيهما تكرار
الكود الذي تتوقعه.
لذلك إذا رأيت يومًا فاصلًا أو استمر في الحلقة ،
فتأكد من فهمك لما يحدث لأنك قد
لا تقوم بتنفيذ كود معين تعتقد أنه سيتم تنفيذه.
مرة أخرى ، عادةً ما يتم لفها داخل حالة. لذا يمكنك النظر إليه بهذه
الطريقة ، ولكنك تريد أيضًا تقديم تعليقات جيدة عند استخدام استراحة أو متابعة.
أتمنى أن يساعدك هذا. في المحاضرة التالية ، سنقوم بتحدي
حيث سنكون قادرين على الاستفادة من هذه الحلقات وستظهر
وتساعدك على تعلم كل شيء عن الحلقات for and break and continue.
شكرًا لك.