كلمات حاكمة أخري للتحكم في C++
كلمات حاكمة أخري للتحكم
توجد بعض الكلمات الحاكمة الأخري للتحكم في سير البرنامج , ولقد رأينا الكلمة الحاكمة break مستخدمة في التعبير الشرطي switch , ولكنها يمكن أن تستخدم في مواضع أخري , كما يوجد الكلمة continue وهي أيضا لا تستخدم إلا في الدورات , وأخيرا العبارة go to والتي يجدر عدم استخدامها .
الكلمة الحاكمة break
تتسبب هذه الكلمة في الخروج من أية دوارة , بالضبط كما تفعل في العبارة الشرطية switch , وتتسبب في الانتقال إلي السطر التالي لكتلة الدوارة مباشرة , ويبين الشكل طريقة عملها .
شكل طريقة عمل الكلمة الحاكمة break
وكمثال علي طريقة عملها , إليك برنامجا يظهر الأعداد الأولية علي هيئة أشكال علي الشاشة .
Showprim.cpp
showprim.cpp
// showprim.cpp
// displays prime number distribution
#include <iostream.h>
#include <conio.h> // for getche()
void main()
{
const unsigned char WHITE = 219; // solid color (primes)
const unsigned char GRAY = 176; // gray (non primes)
unsigned char sal;
// for each screen position
for(int count=0; count<80*25-1; count++)
{
sal = WHITE; // assume it's prime
for(int j=2; j<count; j++) // divide by every integer from
if(count%j == 0) // 2 on up; if remainder is 0,
{
sal = GRAY; // it's not prime
break; // break out of inner loop
}
cout << sal; // display the character
}
getche(); // freeze screen until keypress
}
وما يحدث عملا هو أن كل موضع علي الشاشة يكون مرقما من 1 إلي 1999 ( أي 80*25-1) . وفي المواضع ذات العدد الأولي يكون المحرف ملونا باللون الأبيض , وفي غير ذلك يكون اللون رماديا . ويبين الشكل خرج البرنامج المذكور .
فحينما تري الدوارة الداخلية أن العدد ليس أوليا , وبعد تلوين المحرف رماديا , فإن العبارة break تنفذ , حيث إننا لا تريد الخروج من البرنامج كلية , بل نريد فقط الخروج من الدوارة الداخلية , وتلاحظ من ذلك أن العبارة break تأخذك خارج الدوارة التي هي متضمنه فيها .
وتلاحظ أننا في هذا البرنامج قد استخدمنا الكود الممتد للأسلكي , وهو الكود ذو الأرقام من 128 إلي 255 , وذلك في المحرفين 219 و 176 .
أما الدالة getche() في نهاية البرنامج فوظيفتها تثبت المشيرة إلي أن يتم الضرب علي أي مفتاح , وإلا أنتقلت المشيرة لأول الشاشة بمجرد انتهاء البرنامج .
أما تعريفنا للمتغيرات المحرفية علي أنها unsigned char فلكونها تتجاوز قيمة 127 , وهي أخر مدي للمتغير char .
تعليقات
إرسال تعليق