Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

جملة 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. هذا النمط شائع عندما تحتاج إلى البحث حتى يتم استيفاء شرط معين.

challenge icon

التحدي

سهل

اقرأ رقماً 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")
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals