تدفّق التحكم
استخدم تعبيرات if/else وعبارات when وحلقات for وwhile للتحكم في منطق البرامج في Kotlin.
تدفّق التحكم درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 3 دروس في المجموع.
نظرة عامة على تدفق التحكّم
يتيح تدفق التحكّم لبرنامجكم اتخاذ القرارات وتكرار الإجراءات.
- if/else — الاختيار بين مسارين
- when — مطابقة قيمة مع حالات متعددة
- for — التكرار على نطاق أو مجموعة
- while — التكرار ما دام الشرط صحيحًا
if/else كتعبير
في Kotlin، تُعدّ if/else تعبيرًا — فهي تُعيد قيمة، ولذلك يمكنكم إسنادها مباشرةً:
fun main() {
val score = 75
// Traditional style
if (score >= 60) {
println("Pass")
} else {
println("Fail")
}
// Expression style
val grade = if (score >= 90) "A"
else if (score >= 75) "B"
else if (score >= 60) "C"
else "F"
println("Grade: $grade")
}تعبير when
تُعدّ when بديلًا قويًا في Kotlin عن switch/case:
- تطابق أي قيمة، وليس الأعداد الصحيحة فقط
- يمكن استخدامها كتعبير (فتُعيد قيمة)
- يتعامل فرع
elseمع كل الحالات الأخرى
when أثناء العمل
استخدموا when للتعامل مع حالات متعددة بوضوح:
fun main() {
val day = 3
val name = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4, 5 -> "Thu or Fri" // multiple values
6, 7 -> "Weekend"
else -> "Unknown"
}
println(name) // Wednesday
// when with a range
val temp = 28
val feel = when {
temp < 10 -> "Cold"
temp < 25 -> "Comfortable"
else -> "Hot"
}
println(feel) // Hot
}حلقات for
استخدموا for للتكرار على النطاقات والقوائم والمجموعات الأخرى:
1..5— نطاق من 1 إلى 5 (شاملًا)1 until 5— نطاق من 1 إلى 4 (النهاية غير شاملة)10 downTo 1— العد التنازلي1..10 step 2— تخطّي كل قيمة ثانية
أمثلة على حلقات for
كرّروا على النطاقات والمجموعات:
fun main() {
// Range
for (i in 1..5) print("$i ") // 1 2 3 4 5
println()
// Until (excludes end)
for (i in 0 until 3) print("$i ") // 0 1 2
println()
// Step
for (i in 0..10 step 3) print("$i ") // 0 3 6 9
println()
// List
val fruits = listOf("Apple", "Banana", "Cherry")
for (fruit in fruits) println(fruit)
}while وdo-while
تكرّر while ما دام الشرط صحيحًا. أما do-while فتنفّذ الجسم مرة واحدة على الأقل قبل التحقّق من الشرط.
مثال على حلقة while
أجروا عدًا تنازليًا باستخدام while:
fun main() {
var count = 5
while (count > 0) {
println("Count: $count")
count--
}
println("Done!")
// do-while runs body first
var x = 0
do {
println("x = $x")
x++
} while (x < 3)
}break وcontinue
تحكّموا في تنفيذ الحلقة باستخدام:
break— الخروج من الحلقة فورًاcontinue— تخطّي التكرار الحالي والانتقال إلى التالي
تدعم Kotlin أيضًا أوامر break ذات التسميات للحلقات المتداخلة: break@outer.
اختبار سريع
ماذا ينتج عن 1 until 5؟
مراجعة: تدفق التحكّم
أصبحتم تعرفون الآن كيفية التحكّم في تدفق البرنامج في Kotlin:
if/elseكتعبير — إسناد النتائج مباشرةًwhen— بديل واضح عن switch/caseforمع النطاقات وuntilوstepوdownTowhileوdo-while
التالي: الميزة الأهم في Kotlin — أمان null.
الأسئلة الشائعة
هل درس «تدفّق التحكم» مجاني؟
نعم — نص درس «تدفّق التحكم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 3 دروس في المجموع.
ماذا ستتعلم في «تدفّق التحكم»؟
استخدم تعبيرات if/else وعبارات when وحلقات for وwhile للتحكم في منطق البرامج في Kotlin. تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟
لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «تدفّق التحكم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟
نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المتغيرات وأنواع البيانات
- الدوال وLambdas
- تدفّق التحكم