الحلقة اللانهائية
جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 43 من 75.
في لغة Rust، يمكن إنشاء حلقات تكرار لا نهائية باستخدام إما loop أو while true. كلاهما يعمل حتى يتم إيقافهما صراحةً باستخدام break أو إنهاء البرنامج.
على سبيل المثال:
loop {
// الكود الذي سيتم تنفيذه بشكل متكرر
if condition {
break; // الخروج من الحلقة إذا تحقق الشرط
}
}تستمر الحلقة حتى تصل إلى break. وهي مفيدة للبرامج التي تحتاج إلى العمل بشكل مستمر، مثل الخوادم أو الأجهزة.
إليك مثال على حلقة تكرار لا نهائية تطبع الأرقام حتى يتم استيفاء شرط معين:
let mut count = 0;
loop {
println!("Count: {}", count);
count += 1;
if count > 5 {
break;
// الخروج من حلقة التكرار عندما يكون count أكبر من 5
}
}في هذا المثال، ستقوم الحلقة بطباعة الأرقام من 0 إلى 5 ثم تخرج عندما تصبح count تساوي 6.
التحدي
مبتدئاكتب برنامجاً بلغة Rust يحاكي عداداً بسيطاً. يجب أن يستخدم البرنامج حلقة تكرار غير منتهية لزيادة العداد باستمرار وطباعة قيمته. يجب أن تنتهي الحلقة عندما يصل العداد إلى قيمة معينة يتم تحديدها من خلال المدخلات.
خطوات البرنامج:
- قم بتهيئة متغير قابل للتغيير
counterبالقيمة 0. - استخدم حلقة تكرار غير منتهية (
loop) لزيادة الـcounterبمقدار 1 في كل تكرار. - داخل الحلقة، اطبع القيمة الحالية لـ
counter. - تحقق مما إذا كان
counterيساوي قيمة الإنهاء التي أدخلها المستخدم. إذا كان الأمر كذلك، اخرج من الحلقة.
ورقة مرجعية
يمكن إنشاء الحلقات اللانهائية في Rust باستخدام loop أو while true. وهي تعمل حتى يتم إيقافها صراحةً باستخدام break.
بنية الحلقة اللانهائية الأساسية:
loop {
// الكود الذي سيتم تنفيذه بشكل متكرر
if condition {
break; // الخروج من الحلقة إذا تحقق الشرط
}
}مثال مع عداد:
let mut count = 0;
loop {
println!("Count: {}", count);
count += 1;
if count > 5 {
break;
}
}جرّب بنفسك
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let limit: i32 = input.trim().parse().unwrap();
let mut counter = 0;
// اكتب كودك بالأسفل
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
الطباعة على الكونسولقراءة مدخلات المستخدممراجعة - حتى 120مراجعة - True أو False2المتغيرات - الجزء الأول
الأرقامالمحارف (Char)النصوص (String)القيم المنطقية (Boolean)المتغيرات القابلة للتغيير5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11الدوال
تعريف الدوالالمعاملات والوسائطقيم الإرجاعقيم إرجاع متعددةمراجعة - دالة Sigmaمراجعة - دالة التحقق14التكرار عبر المصفوفات
دليل النطاق (Range)حلقة For المحسنةالاستعارة في الحلقةعمليات المصفوفات الشائعة3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةاستنتاج النوعمراجعة - تهيئة المتغيراتتحويل الأنواع9الحلقات التكرارية
For عبر السلاسلحلقة Whileجملة Breakجملة Continueالحلقات المتداخلةتسميات الحلقاتالحلقة اللانهائيةمراجعة - الإدخال الديناميكي