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

الحلقات التكرارية كتعبيرات

جزء من قسم المنطق وتدفّق التنفيذ في رحلة Rust على Coddy. الدرس 5 من 66.

في معظم لغات البرمجة، تكون الحلقات عبارات تنفّذ التعليمات البرمجية بشكل متكرر. لكن لدى Rust ميزة فريدة: يمكن أن تكون الحلقات أيضًا تعبيرات تُرجع قيمة. وهذا يعني أنه يمكنك إسناد نتيجة حلقة إلى متغيّر.

لإرجاع قيمة من حلقة، تستخدم break متبوعةً بالقيمة التي تريد إرجاعها:

let result = loop {
    // بعض التحقق من الشروط
    if condition_met {
        break 42; // الخروج من الحلقة وإرجاع 42
    }
};

إليك مثالًا عمليًا يعثر على أول رقم زوجي بدءًا من 10:

let mut counter = 10;

let first_even = loop {
    if counter % 2 == 0 {
        break counter; // إرجاع الرقم الزوجي
    }
    counter += 1;
};

println!("First even number: {}", first_even);

تستمر الحلقة حتى تجد عددًا زوجيًا، ثم تستخدم break counter للخروج من الحلقة وإرجاع ذلك العدد. تُسنَد القيمة المُعادة إلى first_even.

challenge icon

التحدي

سهل

ستتلقى number ابتدائيًا كـ input. اقرأ input، وحوّله إلى عدد صحيح، واستخدم تعبير loop للعثور على أول number يقبل القسمة على 7 بدءًا من ذلك number.

المتطلبات:

  • استخدم تعبير loop يعيد قيمة
  • ابدأ checking من input number
  • اعثر على first number يقبل القسمة على 7 (الباقي يساوي 0 عند القسمة على 7)
  • استخدم break لإعادة found number من loop
  • اطبع result

Input: عدد صحيح واحد يمثّل starting number

Output: اطبع first number يقبل القسمة على 7 بدءًا من input number

جرّب بنفسك

use std::io;

fn main() {
    // اقرأ الإدخال
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let start_number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO: اكتب الكود الخاص بك أدناه
    // استخدم تعبير حلقة للعثور على أول عدد قابل للقسمة على 7
    
    
    // اطبع النتيجة
    // println!("{}", result);
}
quiz iconاختبر نفسك

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

جميع دروس المنطق وتدفّق التنفيذ

تدرّب بنفسك: مترجم Rust عبر الإنترنت