R للحلقة


للحلقات

تُستخدم forالحلقة للتكرار عبر تسلسل:

مثال

for (x in 1:10) {
  print(x)
}

هذا أقل شبهاً forبالكلمة الرئيسية في لغات البرمجة الأخرى ، ويعمل بطريقة أشبه بأسلوب مكرر كما هو موجود في لغات البرمجة الأخرى الموجهة للكائنات.

باستخدام forالحلقة ، يمكننا تنفيذ مجموعة من العبارات ، مرة واحدة لكل عنصر في متجه ، أو مصفوفة ، أو قائمة ، إلخ.

سوف تتعلم عن القوائم والمتجهات ، وما إلى ذلك في فصل لاحق.

مثال

طباعة كل عنصر في قائمة:

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  print(x)
}

مثال

اطبع عدد النردات:

dice <- c(1, 2, 3, 4, 5, 6)

for (x in dice) {
  print(x)
}

لا تتطلب forالحلقة متغير فهرسة لتعيينه مسبقًا ، كما هو الحال مع whileالحلقات.


فترة راحة

باستخدام breakالعبارة ، يمكننا إيقاف الحلقة قبل أن تمر عبر جميع العناصر:

مثال

وقف الحلقة عند "الكرز":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "cherry") {
    break
  }
  print(x)
}

ستتوقف الحلقة عند "cherry" لأننا اخترنا إنهاء الحلقة باستخدام breakالعبارة when xتساوي "cherry" ( x == "cherry").



التالي

باستخدام nextالعبارة ، يمكننا تخطي التكرار دون إنهاء الحلقة:

مثال

تخطي "الموز":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "banana") {
    next
  }
  print(x)
}

عندما تمر الحلقة "موزة" ، فإنها ستتخطى ذلك وتستمر في الحلقة.


يهتز!

إذا .. آخر جنبًا إلى جنب مع For Loop

لإظهار مثال عملي ، دعنا نقول أننا نلعب لعبة يهتز!

مثال

اطبع "Yahtzee!" إذا كان رقم النرد 6:

dice <- 1:6

for(x in dice) {
  if (x == 6) {
    print(paste("The dice number is", x, "Yahtzee!"))
  } else {
    print(paste("The dice number is", x, "Not Yahtzee"))
  }
}

إذا وصلت الحلقة إلى القيم التي تتراوح من 1 إلى 5 ، فإنها تطبع "No Yahtzee" ورقمها. عندما تصل إلى القيمة 6 ، فإنها تطبع "Yahtzee!" ورقمه.


حلقات متداخلة

يمكنك أيضًا الحصول على حلقة داخل الحلقة:

مثال

اطبع صفة كل فاكهة في قائمة:

adj <- list("red", "big", "tasty")

fruits <- list("apple", "banana", "cherry")
  for (x in adj) {
    for (y in fruits) {
      print(paste(x, y))
  }
}