>> DOUG لويد: كل الحق، لذلك دعونا نتحدث عن الحلقات.
حتى الحلقات هي نوع من بارد لأنها تسمح للبرنامج الخاص بك
لتنفيذ الأسطر من التعليمات البرمجية أكثر وأكثر وأكثر.
مرارا وتكرارا، دون الحاجة إلى نسخ ولصق أو تكرار ذلك لهم.
هناك ثلاثة رئيسية أنواع من الحلقات سترى.
وربما كنت سيكون لديك الفرصة لاستخدام كل واحد كما تقدم لك من خلال CS50.
بعض هذه الحلقات هي جميلة مألوفة بالنسبة لك من الصفر،
ذلك مرة أخرى، كما فعلنا مع الشرطية، سوف نضع لهم جنبا إلى جنب
إذا كان هناك تشابه يمكننا رسم.
>> الأول هو إلى الأبد من الصفر، الذي يقارن إلى حين (صحيح).
هذا هو ما نسميه حلقة لا نهائية.
الأسطر من التعليمات البرمجية بين مجعد الأقواس، مثل الكثير من قطع اللغز
أن تناسب داخل C لمنع الأبد،
سيتم تنفيذ مرارا وتكرارا من أعلى إلى أسفل، أكثر وأكثر وأكثر،
إلى الأبد.
بعد كل شيء، إذا كنت أذكر لدينا مناقشة التعبيرات المنطقية،
صحيح صحيح دائما.
إذا كان الأمر كذلك نقوم به شيء وقتا طويلا على النحو الصحيح
وtrue-- يبدو قليلا silly-- صحيح هو صحيح دائما، لذلك سوف تعمل دائما.
انها سوف تشغيل وإلى الأبد أبد الآبدين حتى نحن
ايجاد وسيلة للخروج منه مع بيان الشوط الاول، والتي مرة أخرى،
شاهدنا قبل قليل نحن كانوا يتحدثون عن التبديل.
>> أو قتل فقط لدينا البرنامج، الذي بالمناسبة،
إذا كنت من أي وقت مضى تجد نفسك في الوضع مع حلقة لا نهائية
وكنت لا تعرف كيفية التوقف البرنامج من التشغيل.
مجرد ضرب السيطرة وC و التي سوف تقتل البرنامج بالنسبة لك.
ولكن هذا، مرة أخرى، دعا حلقة لا نهائية.
بل هو حلقة من شأنها أن تعمل إلى الأبد.
الآن، في حين أن الحلقات ليست دائما لانهائية، لأن أيضا
يمكننا أن تحل محل منطقية التعبير بشيء
أكثر من ذلك بقليل فائدة من صحيح فقط.
حتى هنا مثال آخر.
في حين وبعض منطقية التعبير والأقواس ثم مجعد.
هذا الى حد كبير مشابهة تكرار حتى، من نقطة الصفر.
وإن كان ذلك في الثانية، وسوف أكون شرح الفرق.
>> وذلك في C، إذا كان تعبير منطقي داخل حلقة في حين
يقيم إلى الحقيقية، خطوط كود بين الأقواس المجعدة
سيتم تنفيذ مرارا وتكرارا وتكرارا حتى تعبير منطقي
يقيم إلى false.
هكذا على سبيل المثال، كنت قد يكون نوعا من العداد.
لذلك نقول لكم في بداية هذه الحلقة ويقول الباحث س يساوي الصفر.
بينما x هو أقل من 100، قيام اثنين أشياء داخل تلك الأقواس المعقوفة،
ثم في نهاية حلقة الخاص بك، ويقول لك س زائد زائد، كنت تزايد السينية.
في نهاية المطاف العاشر سيحصل 100 وشئت
توقف لأن الشرط س أقل من 100
لن يكون صحيحا كما بمجرد س تساوي 100.
100 ليس أقل من 100.
>> الآن مربك بعض الشيء، والسلوك كتلة الصفر يتم عكس.
لذا كن حذرا حقا إذا كان هذا هو أول غزوة الخاص في استخدام الحلقات.
في الأساس، وتكرار حتى كتلة في سكراتش
سوف أكرر شيئا أكثر وأكثر وأكثر،
حتى التعبير، ومنطقية التعبير في السداسي هو الصحيح.
لذلك سوف تستمر في فعل حتى أنه هو الصحيح.
وفي الوقت نفسه، سوف حلقة في حين مواصلة القيام بذلك حتى انها كاذبة.
حتى انهم مماثلة تماما، ولكن هناك القليل فقط هذا التمييز
أن نكون حذرين من خاصة وجعل لكم غزوة الأولى من الانتقال
الى نقطة الصفر إلى ج.
هذا النوع القادم من الحلقة في الواقع تشبه إلى حد ما.
انه دعا افعل حين حلقة.
وهذه الحلقة تنفيذ جميع الخطوط من التعليمات البرمجية بين الأقواس المعقوفة مرة واحدة،
وبعد ذلك سوف تحقق تعبير منطقي.
إذا كان تعبير منطقي تقييم إلى true،
انها سوف أعود وأكرر هذه العملية مرارا وتكرارا
وأكثر حتى منطقية تقييم التعبير إلى false.
حتى هذه الحلقة، على عكس حلقة while، هو مضمونة لتشغيل مرة واحدة على الأقل.
هذا يمكن أن يكون مفيدا جدا.
>> وأخيرا، لدينا لحلقة.
لحلقات هي نوع من غير جذابة نحويا
وهناك الكثير مما يجري هنا، لذلك يتحمل معي
ونحن نحاول وكسر هذه القطع عن بعضها البعض.
عموما، في حالة استخدام لللحلقة هو أنت
أريد أن أكرر شيئا ل عدد محدد من المرات.
في هذا المثال هنا، لدي تكرار كتلة
من الصفر، وهو مشابهة لللحلقة
في C، وتكرار شيء 10 مرات.
وللحلقة على اليسار هناك، والتي
هي حلقة الأربع التي أن تفعل الشيء نفسه.
هذا من شأنه أن يذهب 10 مرة.
العد من الصفر، ونحن زيادة كل مسار من الحلقة.
ونستمر في فعل ذلك حتى أنا أقل من 10.
>> فما يحدث؟
هناك مجموعة كبيرة من التعليمات البرمجية هناك.
دعونا كسرها نزولا ل ما يحدث خطوة
خطوة ونحن من خلال حفر لحلقة.
الشيء الأول الذي حدث هو المتغير العداد هو المركز.
كل شيء إلى اليسار من ذلك أولا منقوطة داخل الأقواس
يتم تنفيذ.
في هذه الحالة، نحن يقول الباحث ط يساوي 0.
إعلان متغير جديد يسمى ط، أن المتغيرات هو نوع عدد صحيح
ونحن نقول القيمة داخل هذا المتغير سوف يكون صفرا.
>> الشيء الثاني نقوم به هو نحن بعد ذلك تقييم فورا
تعبير منطقي.
تعبير منطقي هو في وسط منقوطة اثنين.
أنا أقل من 10.
هذا صحيح هنا، أليس كذلك؟
قلنا فقط ط يساوي الصفر، وهكذا 0 هو أقل من 10،
وحتى هذا الشرط غير صحيح وسوف نقوم الآن
الشروع في تنفيذ جسم الحلقة.
إذا كان كاذبا.
إذا، على سبيل المثال قال لي بدلا من ط يساوي 0 هناك قلت يساوي 15،
كثافة العمليات ط يساوي 15.
حسنا 15 ليس أقل من 10، لذلك نحن لن تدخل الجسم من الحلقة
لأن تعبير منطقي هناك تقيم أنها كاذبة.
>> وبعد أن يذهب من خلال من أعلى إلى أسفل، نصادف أن إغلاق متعرج،
والشيء الثالث يحدث.
المتغير العداد متزايد، أو بالأحرى، خطوط
من مدونة بيان بعد منقوطة الثانية داخل
لحلقات قوسين يتم تنفيذه.
حتى نبدأ بها يقول الباحث ط يساوي 0.
ثم نتحقق من عدمه تعبير منطقي هو الصحيح.
0 أقل من، 10 لذلك صحيح.
لذلك نحن ذاهبون الى المضي قدما في الجسم الحلقة.
أشياء ستحدث داخل الحلقة، و عندما نواجه أن إغلاق مجعد
قوس، والشيء التالي الذي القيام به هو أن نقول أنا زائد، زائد.
كنت الصفر والان انا واحد.
ثم، ونحن تحقق مرة أخرى قيمة تعبير منطقي في الوسط.
واحد هو أقل من 10.
ومن ثم سنذهب من خلال هذا معالجة مرارا وتكرارا.
أننا سنصل إلى إغلاق متعرج مرة أخرى.
سنقوم زيادة ط من 1-2 و2-3.
وهلم جرا وهلم جرا وهلم جرا، حتى في نهاية المطاف يصبح ط في القيمة 10.
10 أقل من 10؟
لا.
عد من 0، لقد ذهب خلال 10 تكرارات من الحلقة.
لقد كرر 10 مرات، فقط كما فعلنا في كتلة خدش.
وحتى في الاساس عملية حلقة الأربع.
>> تتخذ الآن بعيدا الرمز الفعلي ووضعه
فقط في بعض البيانات العامة الأساسية.
وهنا ما يحدث.
جميع البيانات في بدء يتم تنفيذها أولا.
قد يكون لديك أكثر من واحد.
ثم، يتم فحص تعبير منطقي.
إذا تقييم التعبير إلى true، تنفيذ جسم حلقة مرة واحدة.
إذا تقييم التعبير إلى false، ننتهي.
نحن لا تنفيذ الجسم من حلقة على الإطلاق.
بعد أن قمت تنفيذ هيئة حلقة مرة واحدة،
نحن بعد ذلك تفعل ما هو في الجزء الزيادة هناك.
التي عادة ما سيكون شيء من هذا القبيل ط زائد، بالإضافة إلى
أو شيء من هذا القبيل، أن يعدل متغير العداد.
ثم، بعد أن زيادة، ونحن تحقق من التعبير مرة أخرى
وكرر هذه الخطوات مرارا وتكرارا وأكثر حتى التعبير
لم يعد صحيحا.
>> فما هي حالات الاستخدام للحلقة؟
تستخدم يمكنك استخدام حلقة في حين عندما كنت ترغب في حلقة لتكرار
عدد غير معروف من الأحيان، ولكن أنه ربما قد لا تعمل جميع.
ومن الأمثلة الشائعة حقا حين حلقات المستخدمة
هو لتشغيل التحكم في التدفق لعبة.
قد لا تعرف متى المستخدم هو الذهاب للعب،
ولكنك تريد أن تبقي تفعل الشيء نفسه.
تحديث مواقع العفاريت مختلفة على متن الطائرة.
كنت تريد أن تبقي الأمور تتحرك في جميع الأوقات،
ولكنك لا تعرف متى المستخدم هو الذهاب الى التوقف عن اللعب
أو عندما انهم ذاهبون لنفد من الأرواح.
لذلك حلقة في حين هو في الحقيقة جيد لشيء من هذا القبيل.
هذا هو حال استخدام جيدة.
>> لافعل حين حلقة، انها جميلة مماثلة.
كنت ترغب في حلقة لتكرار مجهول عدد المرات، ولكن مرة واحدة على الأقل.
قد تستخدم هذه لعبة أيضا، ولكن هذه الحالة استخدام المشتركة حقا
ومطالبة المستخدم الإدخال.
عموما، قد يقول شيئا مثل، أعطني عددا صحيحا موجبا،
وكنت قد وضعت ذلك داخل افعل حين حلقة.
لذلك سوف تسأل دائما لهم في الأقل مرة واحدة لعدد صحيح موجب.
إذا أنها تعطيك عددا صحيحا موجبا، كنت قد تندلع من الحلقة.
هل يمكن أن يكون القيام به.
تعبير منطقي في والقيام في حين قد تكون كاذبة.
>> وأنك لن نطلب منهم مرة أخرى.
إذا أنها تعطيك رقما سالبا حيث انهم اكتب بعض الكلمات أو شيء من هذا
ليس من المفيد حقا ل لك، قد استخدم
لا أثناء حلقة للعودة والقيام ذلك مرارا وتكرارا وتكرارا.
كنت بالتأكيد نريد أن نسأل لهم أعطيك رقم واحد،
ولكنك لا تعرف كيف عدة مرات بعد ذلك أنها قد تكون الآفات.
وهكذا افعل في حين انها فائدة كبيرة الحال بالنسبة لمطالبة المستخدم الإدخال.
وبالنسبة لحلقات استخدام الحالة عادة عندما
كنت أريد أن أكرر حلقة عدد محدد من المرات،
على الرغم من أنك قد لا معرفة عدد المرات
لحظة ترجمة البرنامج.
>> هكذا على سبيل المثال، ربما يكون لديك برنامج حيث يمكنك مطالبة المستخدم لعدد.
ودخولهم 100.
ثم لديك لحلقة سوف في هذه الحالة تشغيل 100 مرة.
أو ربما يدخلون 1000 في البرنامج
ثم قم بتشغيل حلقة 1000 مرات.
انها عدد محدد من المرات.
لم يفعلوا ذلك بالضرورة تعرف ماذا هذا العدد
هو البرنامج حظة المترجمة.
انها ليست مثل حلقة في حين حيث أنه يمكن أن يكون لانهائي.
انها بدلا عدد انك لا تعرف.
الآن على الرغم من أنني قمت المبين جميع الحالات استخدام هذه،
يجب أن نعرف أن في جميلة كثيرا كل ظرف من الظروف،
يمكنك مبادلة جميع ثلاثة من هذه الحلقات.
يمكنك استخدام لحلقة حيث كنت سوف تستخدم إلا حلقة في حين.
يمكنك استخدام لحلقة أينما كنت تستخدم القيام به أثناء الحلقة وهلم جرا.
يمكن أن تكون صعبة قليلا في بعض الأحيان، لذلك عموما انها ممارسة جيدة
التمسك حالة استخدام نموذجية.
استخدام القيام به أثناء حلقة إذا كنت أريد شيئا مرة واحدة على الأقل.
استخدام للحلقة إذا كنت تريد أن تفعل شيئا بعدد معين من المرات.
بعد كل شيء، وهذا هو السبب في وجود ثلاثة أنواع مختلفة من الحلقات.
>> لذلك يمكن استخدامها في السياق الصحيح.
ولكن يمكنك مبادلة لهم إذا كنت تريد.
إذا كنت تشعر بالراحة مع الحلقات حين وتريد دائما لاستخدام أثناء الحلقات.
إنه شيء يمكنك القيام به، على الرغم من أنه
قد يكون قليلا نحويا صعبة، حيث لحلقة
سوف يكون هناك الكثير أكثر وضوحا.
>> اسمي دوغ ويد وهذا هو CS50.