جمل If-Else المتداخلة
جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 28 من 75.
يمكننا تداخل جمل if-elif-else داخل بعضها البعض. يتيح لنا ذلك إنشاء هياكل اتخاذ قرار هرمية.
على سبيل المثال:
if age > 18 {
if hasLicense {
println!("You can drive");
} else {
println!("Get a license first");
}
} else {
println!("Too young to drive");
}يمكن أن يكون متداخلاً بشكل لا نهائي:
if condition1 {
if condition2 {
if condition3 {
// إذا كانت condition1 و condition2 و condition3 صحيحة
...
}
}
}التحدي
مبتدئأنشئ برنامجًا يتحقق مما إذا كان بإمكان شخص ما ركوب الأفعوانية. المتطلبات هي:
- يجب أن يكون العمر 12 عامًا على الأقل
- يجب أن يكون الطول أكثر من 150 سم
- إذا استوفوا كلا المتطلبين ولكن كان عمرهم أقل من 15 عامًا، فهم بحاجة إلى إشراف شخص بالغ
اطبع هذه الرسائل تمامًا لكل حالة:
- إذا كان صغيرًا جدًا:
Sorry, you're too young - إذا لم يكن طويلًا بما يكفي:
Sorry, you're not tall enough - إذا كان أقل من 15 عامًا وبدون مرافق بالغ:
Sorry, you need an adult with you - إذا كان أقل من 15 عامًا مع مرافق بالغ:
You can ride with adult supervision! - إذا كان يبلغ من العمر 15 عامًا أو أكثر وطويلًا بما يكفي:
You can ride by yourself!
ورقة مرجعية
يمكنك تضمين عبارات if-elif-else داخل بعضها البعض لإنشاء هياكل صنع قرار هرمية:
if age > 18 {
if hasLicense {
println!("You can drive");
} else {
println!("Get a license first");
}
} else {
println!("Too young to drive");
}يمكن إجراء التضمين بشكل غير محدود:
if condition1 {
if condition2 {
if condition3 {
// إذا كانت condition1 و condition2 و condition3 صحيحة
...
}
}
}جرّب بنفسك
use std::io;
fn main() {
let mut age_input = String::new();
let mut height_input = String::new();
let mut adult_input = String::new();
io::stdin().read_line(&mut age_input).unwrap();
io::stdin().read_line(&mut height_input).unwrap();
io::stdin().read_line(&mut adult_input).unwrap();
let age: i32 = age_input.trim().parse().unwrap();
let height: i32 = height_input.trim().parse().unwrap();
let has_adult: bool = adult_input.trim().parse().unwrap();
// اكتب كودك بالأسفل
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
الطباعة على الكونسولقراءة مدخلات المستخدممراجعة - حتى 120مراجعة - True أو False2المتغيرات - الجزء الأول
الأرقامالمحارف (Char)النصوص (String)القيم المنطقية (Boolean)المتغيرات القابلة للتغيير5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11الدوال
تعريف الدوالالمعاملات والوسائطقيم الإرجاعقيم إرجاع متعددةمراجعة - دالة Sigmaمراجعة - دالة التحقق14التكرار عبر المصفوفات
دليل النطاق (Range)حلقة For المحسنةالاستعارة في الحلقةعمليات المصفوفات الشائعة3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةاستنتاج النوعمراجعة - تهيئة المتغيراتتحويل الأنواع9الحلقات التكرارية
For عبر السلاسلحلقة Whileجملة Breakجملة Continueالحلقات المتداخلةتسميات الحلقاتالحلقة اللانهائيةمراجعة - الإدخال الديناميكي