بيان حلقة مع الشرط - while


حلقة بشرط. بيان while
عند دراسة حلقة for ، قلنا أنه إذا كان عدد التكرارات لأي إجراءات معروفًا ، فيمكنك تقصير البرنامج باستخدام لـ حلقة التشغيل. ولكن ماذا لو كان عدد التكرارات غير معروف؟ وهذا يحدث كثيرًا.
نبسب ؛
مثال عند تذكر ترجمة عدد من نظام الأعداد العشرية إلى أي نظام آخر ، نحتاج إلى قسمة الرقم (ثم نتيجة القسمة) على قاعدة نظام الأرقام حتى نحصل على صفر في الإجابة. كم مرة سنشاركها غير معروف. وهناك الكثير من البرامج التي تنفذ مثل هذه الخوارزمية. & nbsp؛

كيف يمكننا تنفيذ الخوارزمية إذا كنا لا نعرف بالضبط عدد التكرارات؟

لمثل هذه الحالات في البرمجة ، هناك تعليمة حلقة بها شرط. & nbsp؛
في لغة برمجة بايثون ، تبدأ تعليمة الحلقة الشرطية بالكلمة بينما ولها البنية التالية.
while (& lt؛ condition & gt؛) & nbsp؛
{
نبسب ؛ حلقة الجسم
}

كما نعلم بالفعل:
- الشرط هو تعبير يمكن تقييمه إلى صواب أو خطأ (كما في الجملة الشرطية) ؛
- جسم الحلقة هي أوامر يجب تكرارها ، يتم وضع مسافة بادئة لها.

كيف يعمل عامل التشغيل؟
1. أولاً ، يقوم البرنامج بتقييم الشرط بين قوسين بعد كلمة while . إذا تم استيفاء الشرط (صواب) ، فسيقوم البرنامج بتنفيذ العبارة (العبارات) الموجودة في جسم الحلقة.
2. بعد اكتمال تنفيذ جسم الحلقة ، يعود البرنامج لفحص الحالة وفحصها مرة أخرى.
3. تتكرر هذه الإجراءات (فحص الشرط - تنفيذ جسم الحلقة) حتى يصبح الشرط خاطئًا.
4. إذا لم يتم استيفاء الشرط على الفور (خطأ) أثناء التنفيذ الأول لهذه العبارة ، فلن يقوم البرنامج مطلقًا بتنفيذ جسم الحلقة.

عند تحليل عمل هذا المشغل ، يجب أن يتضح أن جسم الحلقة يجب أن يحتوي على عامل يؤثر على الحالة.
على سبيل المثال ، في الحلقة ، يمكن زيادة قيمة المتغير المستخدم في شرط.

مثال على برنامج نسميه & quot؛ عدد صامت & quot؛ .
لنجعل البرنامج يحسب بدلاً منا ، على سبيل المثال ، حتى 10.
يجب أن يخرج البرنامج العبارات & quot؛ Start & quot؛ و & quot؛ إنهاء & quot ؛، وبين هذه الإجراءات اعرض الأرقام التي يتم حسابها.

على سبيل المثال ، مثل هذا:
ابدأ
1 2 3 4 5 6 7 8 9 10
إنهاء

سيبدو البرنامج الذي يستخدم حلقة while بالشكل التالي: باستخدام النظام ؛ برنامج الفصل { نبسب ؛ نبسب ؛ فراغ ثابت رئيسي () { نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ Console.WriteLine (& quot؛ Start & quot؛)؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ int أنا = 1 ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ بينما (i ​​& lt ؛ = 10) { نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ Console.WriteLine (i) ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ أنا ++ ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ } نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ Console.WriteLine (& quot؛ Finish & quot؛)؛ نبسب ؛ نبسب ؛ } } في هذا البرنامج ، نخصص قيمة للمتغير i = 1 - نقطة البداية.
علاوة على ذلك ، طالما أن قيمة المتغير i & nbsp ؛ ليست أكبر (أي أقل من أو يساوي) القيمة التي نحتاجها ، فإننا:
على & nbsp؛ 1) عرض قيمة المتغير i ؛
& nbsp؛ 2) زيادة قيمة المتغير i & nbsp؛ بمقدار 1 - يؤثر هذا العامل على قيمة الشرط بين قوسين. يتم زيادة المتغير i & nbsp؛ ، مما يعني أنه في مرحلة ما سيصبح الشرط i & lt؛ = 10 خطأ. سيحدث هذا عندما تكون i & nbsp؛ مساوية لـ 11 . في هذه الحالة ، لن يتم تنفيذ جسم الحلقة ، وسيقوم البرنامج بتنفيذ العبارة التالية بعد الحلقة ، أي & nbsp؛ Console.WriteLine (& quot؛ Finish & quot؛) .

لنحاول كتابة برنامج لحل المشكلة التالية: & nbsp؛ تحتاج إلى إدخال رقم وتحديد عدد الخانات فيه.

فكرة الحل.
نحتاج فقط إلى قطع الرقم الأخير بالتسلسل من الرقم (يمكن القيام بذلك عن طريق تقليل الرقم بمقدار 10 مرات ، باستخدام القسمة الصحيحة بمقدار 10) ، وفي كل مرة نحتاج إلى زيادة العداد. & nbsp؛
نتيجة لذلك ، بعد قطع جميع الأرقام ، سيخزن العداد عدد الأرقام في الرقم.
بطريقة أخرى ، يمكن صياغة الخوارزمية على النحو التالي: & nbsp ؛ بينما الرقم لا يساوي الصفر ، قم بتقليله بمقدار 10 مرات وزيادة العداد بمقدار 1.
<الجسم>
number (n) عداد
123 0
12 1
1 2
0 3
سيبدو البرنامج بالشكل التالي: <قبل> ... فراغ ثابت رئيسي () { int n = Convert.ToInt32 (Console.ReadLine ()) ، عدد صحيح = 0 ؛ بينما (ن! = 0) { العد ++ ؛ ن = ن / 10 ؛ } } أنت بحاجة إلى معرفة وفهم هذا البرنامج جيدًا ، نظرًا لأن العديد من المهام الأخرى تتعلق بالحساب بأرقام رقم.

مهمة إدخال البرنامج هو دفق البيانات و [مدش] ؛ سلسلة من الأعداد الصحيحة التي تنتهي بصفر (لا يتم تضمين الصفر في التسلسل). & nbsp؛ تحتاج إلى إيجاد مجموع عناصر هذا التسلسل.
نبسب ؛
حل الخوارزمية <قبل> المجموع = 0 إدخال x // أدخل الرقم الأول بينما x! = 0 // يتم تعيين علامة نهاية الإدخال في الحالة ، على & nbsp؛ nc // أي حتى تدخل الصفر على & nbsp؛ & nbsp؛ & nbsp؛ sum = sum + x // يمكنك فعل شيء مع الرقم الأصلي. // يمكنك إضافة فحص رقمي لبعض الشروط ، وما إلى ذلك. على & nbsp ؛ على & nbsp ؛ على & nbsp ؛ إدخال x // أدخل الرقم التالي عقدة طباعة المجموع // نتيجة الإخراج