جملة Break
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 40 من 78.
أحياناً تحتاج إلى الخروج من الحلقة مبكراً، قبل أن تنهي جميع تكراراتها. تسمح لك جملة break بإيقاف الحلقة فوراً عند استيفاء شرط معين.
for (i in 1:10) {
if (i == 5) {
break
}
print(i)
}المخرجات:
[1] 1
[1] 2
[1] 3
[1] 4تم ضبط الحلقة لتعمل من 1 إلى 10، ولكن عندما وصلت i إلى 5، قام بيان break بإيقاف الحلقة تماماً. لاحظ أنه لم يتم طباعة الرقم 5 لأن break يخرج فوراً.
هذا مفيد بشكل خاص مع حلقات while عند البحث عن شيء ما:
num <- 1
while (TRUE) {
if (num * num > 20) {
break
}
num <- num + 1
}
print(num)الناتج:
[1] 5هنا، while (TRUE) سيعمل عادةً إلى الأبد، ولكن break توقفه بمجرد العثور على أول رقم يتجاوز مربعه 20. هذا النمط شائع عندما تحتاج إلى البحث حتى يتم استيفاء شرط معين.
التحدي
سهلاقرأ رقماً limit من المدخلات. استخدم حلقة for للتكرار من 1 إلى limit، ولكن أوقف الحلقة مبكراً باستخدام break عندما تواجه أول رقم يقبل القسمة على كل من 3 و 7.
اطبع كل رقم قبل التحقق من الشرط. عندما تجد رقماً يقبل القسمة على كل من 3 و 7، اطبع ذلك الرقم، ثم اخرج من الحلقة.
بعد انتهاء الحلقة، اطبع "Loop ended" باستخدام print().
على سبيل المثال، إذا كانت المدخلات 30، يجب أن تكون المخرجات:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] "Loop ended"تتوقف الحلقة عند 21 لأنه أول رقم يقبل القسمة على كل من 3 و 7 (21 = 3 × 7).
ورقة مرجعية
توقف عبارة break الحلقة (loop) فوراً عند استيفاء شرط معين:
for (i in 1:10) {
if (i == 5) {
break
}
print(i)
}المخرجات:
[1] 1
[1] 2
[1] 3
[1] 4تخرج الحلقة عندما تصل قيمة i إلى 5. لا يتم طباعة القيمة 5 أبداً لأن break تخرج فوراً.
استخدام break مع while (TRUE) للبحث:
num <- 1
while (TRUE) {
if (num * num > 20) {
break
}
num <- num + 1
}
print(num)المخرجات:
[1] 5يجد هذا النمط أول رقم يتجاوز مربعه 20، ثم يوقف الحلقة اللانهائية.
جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))
# تنبيه: اكتب الكود الخاص بك أدناه
# استخدم حلقة for من 1 إلى limit
# اطبع كل رقم قبل التحقق من الشرط
# اخرج من الحلقة عندما تجد رقماً يقبل القسمة على كل من 3 و 7
# تلميح: استخدم المعامل %% للتحقق من قابلية القسمة
# اطبع "Loop ended" بعد الحلقة
print("Loop ended")يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ