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

حلقة While

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 39 من 78.

بينما تتكرر حلقة for عبر تسلسل محدد مسبقاً، تستمر حلقة while في العمل طالما ظل الشرط TRUE. هذا مفيد عندما لا تعرف مسبقاً عدد المرات التي تحتاج فيها لتكرار شيء ما.

count <- 1
while (count <= 3) {
  print(count)
  count <- count + 1
}

المخرجات:

[1] 1
[1] 2
[1] 3

تتحقق الحلقة من الشرط count <= 3 قبل كل تكرار. عندما تصبح قيمة count هي 4، يكون الشرط FALSE، وتتوقف الحلقة.

هام: يجب عليك تحديث المتغير داخل الحلقة. بدون count <- count + 1، سيكون الشرط دائماً TRUE، مما يؤدي إلى إنشاء حلقة لا نهائية لا تنتهي أبداً.

total <- 0
num <- 1
while (num <= 5) {
  total <- total + num
  num <- num + 1
}
print(total)

المخرجات:

[1] 15

يضيف هذا المثال الأرقام من 1 إلى 5، مما ينتج عنه 15. تعد حلقة while مثالية عندما تعتمد نقطة التوقف على شرط بدلاً من تسلسل ثابت.

challenge icon

التحدي

سهل

اقرأ رقماً n من المدخلات. استخدم حلقة while لحساب وطباعة مجموع كل الأرقام من 1 إلى n.

ابدأ بمتغير لتتبع المجموع التراكمي ومتغير آخر كعداد. استمر في الإضافة إلى المجموع طالما أن العداد أقل من أو يساوي n، مع زيادة العداد في كل تكرار.

بعد اكتمال الحلقة، اطبع المجموع النهائي باستخدام print().

على سبيل المثال، إذا كانت المدخلات 5، يجب أن تكون المخرجات:

[1] 15

هذا لأن 1 + 2 + 3 + 4 + 5 = 15.

ورقة مرجعية

تعمل حلقة while طالما ظل الشرط TRUE:

count <- 1
while (count <= 3) {
  print(count)
  count <- count + 1
}

تتحقق الحلقة من الشرط قبل كل تكرار. عندما يصبح الشرط FALSE، تتوقف الحلقة.

هام: قم دائمًا بتحديث المتغير داخل الحلقة لتجنب الحلقات اللانهائية:

total <- 0
num <- 1
while (num <= 5) {
  total <- total + num
  num <- num + 1
}
print(total)  # النتيجة: [1] 15

تعد حلقات While مثالية عندما تعتمد نقطة التوقف على شرط بدلاً من تسلسل ثابت.

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))

# تهيئة المتغيرات
total <- 0
counter <- 1

# TODO: اكتب حلقة while أدناه لحساب المجموع من 1 إلى n


# طباعة النتيجة
print(total)
quiz iconاختبر نفسك

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

جميع دروس Fundamentals