الحلقات فى لغة السى loops :
فى لغة السى يوجد ثلاثة أنواع من الحلقات . وظيفة الحلقة هى تكرار تنفيذ مجموعة من التعليمات داخل تلك الحلقة حتى يتحقق شرط ما , أو قد يتم التنفيذ إلى ما لانهاية .
الحلقات هى :
while
do..while
for
سوف تقوم الحلقة بتنفيذ التعليمات بصفة دائمة طالما أن "التعبير" expression صواب (صحيح) true . فى لغة السى "صواب" true تعنى أى قيمة غير صفرية .
حلقة while :
الاستخدام :
كود:
while (expression){ statement }
مثال :
كود:
PORTB=0b10101010;
while(1) {
PORTB = ~ PORTB;
Delay_ms(500);
}
فى الكود أعلاه , سوف لا تنتهى الحلقة أبدا . يتم تنفيذ التعليمات الموجودة بين القوسين "{….}" إلى ما لا نهاية . عادة تستخدم هذه الحلقة من أجل الحلقات الرئيسية main للبرامج التى لا ينتهى .
مثال :
كود:
while(PORTB.F1 == 0) {
.
.
}
هذه الحلقة سوف تتكرر حتى تتغير حالة الطرف PORTB.F1 , أى عندما يكون PORTB.F1=1 يتم الخروج من الحلقة .
ملاحظة هامة :
يتم تقييم التعبير expression قبل تنفيذ التعليمات الموجودة بين الأقواس "{…}" . فإذا كان التعبير غير صحيح false عندئذ يتم تخطى التعليمات الموجودة بين القوسين "{..}" . إذا كنت ترغب فى تنفيذ التعليمات لمرة واحدة على الأقل , عنئذ تكون بحاجة لاستخدام حلقة "do…while".