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))
}
}