[Powered by Google Translate] TOMMY MACWILLIAM: لنتحدث عن الحلقات، واحدة من المشتركة البرمجة يبني سنرى في جميع أنحاء CS50. سنستخدم الحلقات عندما نريد لتنفيذ المهمة أكثر من مرة. على سبيل المثال، فإننا قد ترغب في طباعة "مرحبا" 100 مرة أو الطباعة خطابات كل من الأبجدية. في كل من هذه الحالات، لدينا شيء واحد أننا نريد أن نفعل عدة مرات، طباعة شيء ما. ومع ذلك، ما يمكن طباعة كل مرة تختلف. لذلك يمكننا أن نفعل شيئا مختلفا قليلا على كل التكرار، أو من خلال تشغيل، من الحلقة. سنرى ثلاثة أنواع مختلفة من الحلقات في C، في حين الحلقات، حلقات ل، والقيام بينما الحلقات. ورغم أن هذه الأنواع الثلاثة من الحلقات يكون بناء جملة مختلفة، الأفكار التي تقف وراءها هي نفسها. سوف نحدد بعض كتلة من التعليمات البرمجية داخل الأقواس المتعرجة، ودعا نص الحلقة، التي نريد أن يتم تنفيذ بعض عدد من المرات. عن طريق تغيير قيم المتغيرات المستخدمة في الجسم، ونحن يمكن أن تجعل حلقة لدينا تفعل شيئا مختلفا في كل مرة يتم تشغيله. مع أي حلقة نكتب، سوف نحتاج أيضا إلى تحديد موعد لل وحلقة إيقاف تشغيل. إذا لم نفعل ذلك، ثم سوف يواصل جهاز الكمبيوتر لدينا مضمونة لتشغيل هذا حلقة حتى نقتل البرنامج. في خدش، يمكن أن نستخدم تكرار n مرة منع لخلق حلقة. جميع القطع داخل كتلة التي تقول كرري الحركة 10 سيتم تشغيل 10 مرات. وبعد ذلك، سوف ننتقل إلى القطع بعد ذلك الحلقة. لذلك وضعنا هو مجرد توقف، وكان هذه الكتلة تشغيل 10 مرات. لذلك دعونا إعادة هذا في C. من أجل خدش لضمان التي يتم تنفيذها القطع داخل كتلة التكرار بالضبط 10 مرات، خدش يحتاج لتتبع كل تنفيذ كتلة تكرار. لتتبع عدد المرات جسمنا حلقة كانت أعدم، دعونا إنشاء متغير يسمى ط. سنبدأ من الصفر قبالة أنا، منذ لدينا حلقة لم يتم تشغيل حتى الان. حسنا الآن سوف نستخدم الكلمة بعض الوقت لتبدأ حلقة دينا. الآن سنحتاج إلى معرفة متى ستتوقف حلقة لدينا، ولكن دعونا الآن لترك هذا ثم أعود إليها. حسنا. داخل حلقة لدينا، دعونا فقط طباعة رسالة بها، مثل "مرحبا". يمكننا استخدام الدالة printf لهذا الغرض. حسنا. حتى الآن سوف نقوم بتسجيل أن التكرار من الجسم لديه حلقة أعدم. يمكننا أن نفعل ذلك عن طريق إضافة 1 إلى، أو تزايد، ومكافحة لدينا متغير، ط. للقيام بذلك، يمكننا أن نقول أنا يساوي أنا زائد 1 أو أكثر ببساطة، أنا زائد زائد. كبيرة. حتى الآن يمكننا أن نرى أنه في كل مرة يتم تشغيل حلقة لدينا، لدينا المتغير العداد ترتفع من جانب واحد. حتى نعرف بالضبط عدد التكرارات لدينا تشغيل حتى الآن. بعد واحد التكرار من الحلقة، لدينا قيمة سوف أكون من 1. بعد سنتين التكرار، وسوف تكون 2. وبعد 10 التكرار، وسوف يكون 10. لذلك، إذا كنا نريد لتشغيل هذه الحلقة بالضبط 10 مرات، ثم هذا هو عندما نريد أن يتوقف. لذلك نحن نريد لتشغيل هذه الحلقة بينما كنت أقل من 10، و هذا هو بالضبط ما سنقوم الكتابة، وأنا أقل من 10. هذا الشرط يبدو تماما مثل الظروف التي استخدمناها في حال آخر القطع. بعد تم تنفيذ حلقة جثة لدينا، لدينا برنامج سوف تقفز مرة أخرى إلى حالة الحلقات. إذا كان الشرط صحيحا، ثم جسد سيتم تشغيل الحلقة مرة أخرى. إذا كان الشرط لم يعد صحيحا، ثم لدينا حلقة لا تكون تشغيل بعد الآن، وسوف ننتقل إلى السطر التالي من التعليمات البرمجية تحت حلقة دينا. حسنا. لذلك دعونا نلقي نظرة على النوع الثاني من حلقة، وحلقة ل. بجوار الكلمة الرئيسية في حين، بين قوسين، كان لدينا شيء واحد، شرط ان يكون صحيحا اللازمة للل ليتم تشغيلها الجسم حلقة. هذا يعني كان لدينا لإنشاء متغير لدينا مكافحة خارج من الحلقة وتذكر أن زيادة ذلك في مرحلة داخل الحلقة. رأس لدينا لحلقة، من ناحية أخرى، على ثلاثة سيتم فصل أجزاء، كل منها بفاصلة منقوطة. في المركز الثالث الأولى لنا، يمكننا أن نعلن أي العداد أو المساعد المتغيرات نود أن استخدامها في حلقة لدينا. في الممارسة العملية، وهذا يمكن أن يكون مفيدا حقا. نحن حقا لا تحتاج هذا المتغير، الاول، في حين لدينا بعد حلقة وتشغيل، لذلك نحن حقا لا ينبغي أن تعلن عنه خارج الحلقة. وسوف يكون الثلث الثاني الشرط الذي يجب أن يكون صحيحا لليتم تنفيذها الجسم مرة أخرى، تماما مثل في حلقة بينما لدينا. لدينا في المركز الثالث مشاركة، يمكننا تشغيل عبارة من شأنها أن تكون أعدم بعد كل تكرار للحلقة، لذلك نحن لا لم لبنائه في الجسم حلقة. لذلك دعونا بريد لحلقة التي تعول انخفاضا من 5 الى 1. سنبدأ مع الكلمة الرئيسية لل. يمكننا إنشاء متغير عداد الأولى، التي سنقوم تعيين إلى 5 منذ هذا الوقت ونحن العد التنازلي، تليها فاصلة منقوطة. التالية هي حالتنا، ونحن سوف نعود إلى. الثالث، نود أن إنقاص المتغير لدينا بعد العداد كل تكرار للحلقة. وذلك بدلا من القول أنا زائد زائد، سوف نقول أنا ناقص ناقص. حسنا. لذلك نحن نريد الجسم حلقة لتشغيل بينما أنا لا يزال أكبر من 0. في نص الحلقة، دعونا طباعة قيمة ط. للقيام بذلك، سوف نستخدم الدالة printf، وذلك باستخدام د٪ العنصر النائب. تذكر، سيتم استبدال العنصر النائب مع أن قيمة ط. وأخيرا، دعونا نضيف بيان بعد لدينا حلقة. عندما كنا تشغيل هذه الحلقة، وسوف تبدأ في 5، لذلك سيتم طباعتها 5. بمجرد أن يحصل على 0، شرط استمرار، وأنا غير أكبر من 0، لن تعقد. لذلك سوف يتوقف لدينا حلقة المنفذة، وسنرى بيان بعد الحلقة. لذلك دعونا تشغيل هذا الرمز. أولا، سنقوم بتجميع countdown.c مع جعل العد التنازلي. الآن، يمكننا تشغيل هذا الرمز مع العد التنازلي /. في كل حلقات في حين والحلقات، ونحن استمرار وسيتم فحص حالة المعروضة على الهيئة من يتم تنفيذ الحلقة. وهذا يعني أنه إذا وضعنا في البداية ليس صحيح، ثم لم جسد حلقة دينا يتم تشغيلها. لذلك فمن المفيد أحيانا للتحقق من حالة بعد الجسم من الحلقة بدلا من المعروض عليه. لذلك دعونا هنا حلقة لمطالبة المستخدم لعدد حتى يتم توفير رقم موجب. إذا كان المستخدم المدخلات رقما سالبا، سوف نريد أن نطلب منهم لرقم آخر. وهكذا لن نريد أن تكون هذه المطالبة داخل الجسم من الحلقة. ومع ذلك، عندما يتم تشغيل الحلقة للمرة الأولى، للمستخدم لم تعط لنا عدد حتى الآن. لذلك لا معنى للتحقق مما إذا كان ايجابيا. بدلا من ذلك، سوف نريد أن التحقق من الرقم بعد على جثة يتم تشغيل الحلقة. يمكننا أن نفعل هذا مع القيام في الوقت حلقة. أولا، سوف نقوم بإنشاء متغير، N، التي ستعقد المستخدم الإدخال. الآن سوف نستخدم الكلمة دو، تليها الأقواس المتعرجة التي وسوف تبدأ حلقة من الجسم لدينا. في الجسم، ويمكننا مطالبة المستخدم لعدد مع GetInt ظيفة. الآن، سوف نريد الجسم من هذه الحلقة لتنفيذ مرة أخرى إذا المستخدم كتابة رقم سالب، وهكذا لن نقول في حين ن أقل من 0. لاحظ هنا منقوطة بعد بيان بعض الوقت. لذلك دعونا تشغيل هذا الرمز. أولا، سنقوم بتجميع هذا مع جعل إيجابية. الآن يمكننا تشغيل البرنامج مع / إيجابية. إذا نعطي هذا البرنامج رقم سالب، مثل السلبية 4، ثم سوف تتم مطالبتك مرة أخرى أننا لعدد منذ حالة من حين نبذل حلقة كان صحيحا. وبمجرد أن تعطي رقما موجبا، مثل 8، ثم حالة من حين نبذل حلقة لن يكون صحيحا. وحتى لا يتم تنفيذ حلقة مرة أخرى. وهذا كل شيء عن ثلاثة أنواع من الحلقات سنستخدم في C. اسمي تومي، وهذا هو CS50.