حلقة while
جزء من قسم الأساسيات في رحلة Lua على Coddy. الدرس 71 من 90.
أحيانًا تحتاج إلى تكرار التعليمات البرمجية دون معرفة عدد مرات التكرار مسبقًا، مثلًا حتى تنفد أرواح اللاعب. حلقة while مثالية لهذا الغرض: فهي تواصل تنفيذ التعليمات البرمجية نفسها مرارًا وتكرارًا ما دام الشرط true.
تبدو البنية الأساسية لحلقة while بهذا الشكل:
while condition do
-- الشفرة المطلوب تكرارها
endإليك مثالًا بسيطًا يطبع الأعداد من 1 إلى 3:
local count = 1
while count <= 3 do
print(count)
count = count + 1
endتعمل هذه الحلقة من خلال التحقق أولًا مما إذا كان count <= 3 صحيحًا. إذا كان كذلك، يُنفَّذ الكود الموجود بداخلها، فيطبع الرقم الحالي ويزيد العداد. ثم يتحقق من الشرط مرة أخرى، وتتكرر العملية حتى يصبح الشرط خطأً.
التحدي
سهلأنشئ نظامًا لمراقبة الصحة يستخدم حلقة while لتتبّع عملية تعافي اللاعب. ابدأ بإنشاء متغير اسمه playerHealth وأسند إليه القيمة 25. ثم أنشئ متغيرًا آخر اسمه maxHealth وأسند إليه القيمة 100.
اكتب حلقة while تستمر ما دامت صحة اللاعب أقل من صحته القصوى. داخل الحلقة، اطبع قيمة الصحة الحالية أولًا، ثم زد playerHealth بمقدار 15. ولأن الطباعة تحدث قبل الزيادة، ستكون آخر قيمة مطبوعة هي 85: يُعاد التحقق من شرط الحلقة بعد إضافة 15 (لتصبح قيمة playerHealth مساوية لـ 100)، وبما أن 100 ليست أقل من maxHealth، تتوقف الحلقة دون طباعة 100.
الناتج المتوقع هو:2540557085
جرّب بنفسك
-- هيّئ صحة اللاعب والحد الأقصى للصحة
local playerHealth = 25
local maxHealth = 100
-- TODO: اكتب الكود الخاص بك هنا
-- أنشئ حلقة while تستمر ما دام playerHealth < maxHealth
-- داخل الحلقة: اطبع الصحة الحالية، ثم زِد playerHealth بمقدار 15يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات 2: العمليات العلائقية والمنطقية
معاملات التساويالمعاملات العلائقيةالمعامل 'and'المعامل 'or'المعامل 'not'التقييم قصير الدائرةقيم Truthy و Falsyمراجعة - المنطق البسيط10الجداول الجزء 1: نمط القائمة
ما هو الجدول؟إنشاء جدولالوصول إلى العناصر عبر الفهرستعديل العناصر عبر الفهرسمعامل الطول '#'table.insert()table.remove()ملخص - إدارة أعضاء الفريق13مشروع: متجر جرعات بسيط
إعداد المشروعإضافة جرعة2المتغيرات وأنواع البيانات
ما هو المتغير؟الأرقامالسلاسل النصيةالقيم المنطقيةالقيمة 'nil'الدالة type()قواعد التسميةمراجعة - ملف الشخصية5الإخراج الأساسي
طباعة القيم الحرفيةطباعة المتغيراتطباعة قيم متعددةدمج النصوص والمتغيراتدالة tostring()الإدخال (Input)التحويل (Cast)مراجعة - تقرير الحالةمراجعة - حتى 1208أساسيات معالجة النصوص
string.len()string.upper و string.lowerstring.sub()string.rep()string.find()مراجعة - تنسيق اسم المستخدم3المعاملات 1: العمليات الحسابية والدمج
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسدمج النصوصأولوية المعاملاتملخص - حسابات بسيطة6مشروع: عرض إحصائيات الشخصية
رسالة ترحيبتعريف إحصائيات الشخصية9أساسيات الدوال
تعريف دالةاستدعاء دالةدوال مع معاملاتدوال بمعاملات متعددةجملة 'return'مراجعة - حاسبة المساحة12أساسيات الحلقات التكرارية
حلقة whileحلقة repeat-untilحلقة for الرقميةحلقة for مع خطوةجملة 'break'مراجعة - العد التنازليتدرّب بنفسك: مترجم Lua عبر الإنترنت