لم تتغير الحلقات في لغة C++، ولا يزال هناك ثلاثة أنواع من حلقات while ، وحلقات do-while ، وحلقات for ، ولا يوجد فرق في طرق استخدام الاستراحة والمتابعة، بما في ذلك استخدام العديد من حلقات الاستراحة والمتابعة أسئلة لتعلم وتوحيد المفاهيم في هذا الجزء.
لننظر إلى السؤال 1143 في ميدان التدريب، وهو سؤال حول تحديد الأعداد الأولية بعد فهم مفهوم الأعداد الأولية، من الواضح أنه بالنسبة لأي عدد N، يجب أن نحاول ذلك بشكل تسلسلي من 2 إلى N-1 لتحديد ما إذا كان. إنه قابل للقسمة على N. اكتشف ما إذا كانت هناك عوامل يمكن قسمتها على N. إذا لم يكن هناك عامل، فهو رقم أولي، وإلا فهو ليس كذلك، فمن الواضح أنه سؤال اجتياز الحلقة على النحو التالي:
#include<iostream>usingnamespacestd;intmain(){intn,i;cin>>n;for(i=2;i<n;i++){if(n%i==0)break;}if(i>= n)cout<<1<<endl;elsecout<<0<<endl;return0;}
نتائج التشغيل التجريبي هي كما يلي:
القاعدة القديمة هي أنه لا بأس بكتابة الرمز شخصيًا واختباره محليًا، ثم المتابعة بعد اجتياز عملية الإرسال.
بعد ذلك، دعونا نلقي نظرة على سؤال آخر يتعلق بالحلقات في C++، نظرًا لأنه شائع نسبيًا في مسابقات ACM، سأدرجه أيضًا للجميع. السؤال هو السؤال 1085 في مجال التدريب. إنه سؤال بسيط حول إيجاد مجموع A+B، ولكنها عبارة عن مجموعات متعددة من بيانات الاختبار التي تقبلها الحلقة بشكل مستمر.
#include<iostream>usingnamespacestd;intmain(){inta,b;while(cin>>a>>b){cout<<a+b<<endl;}return0;}
تأثير التشغيل هو كما يلي:
يرجى ملاحظة أن الشرط الموجود في الحلقة while مكتوب على شكل عبارة cin ، لماذا يمكن كتابته بهذه الطريقة؟ المبدأ هو تمامًا نفس مبدأ كتابة لغة C while(scanf(%d%d,&a,&b)==2). جميعهم يحكمون على القيمة المرجعة، أي القيمة المرجعة لـ cin يقوم cin بإرجاع كائن istream ، إذا حدثت مشكلة وفشل الاستقبال، فسيتم إرجاع خطأ وتنتهي الحلقة.
يرجى التأكد من اختباره على الكمبيوتر بنفسك وإكمال الأسئلة 1085~1092 في ساحة التدريب باستخدام لغة C++.