Loops و الـ Ranges في الكوتلن : For - while
السلام عليكم و رحمة الله و بركاته
النطاق - Ranges
النطاق سلسلة قيم تحتوي على قيمة بداية و نهاية, و يمكن استخدامها مع الرمز .. و هو عبارة عن نقطتين متتالية. فمثلا الكود التالي ينشيء نطاق للأعداد من ١ إلى ١٠
val numbers = 1 .. 10
و بمجرد إنشاء الـ Range بعدها يمكننا عمل تعديلات عليه و إستخراج Range جديدة منها و ذلك باستخدام الدالة ()step
فلو اردت استخراج قائمة بالأرقام الفردية فقط من النطاق السابق , نكتب التالي:
val numbers = 1 .. 10
val oddNumbers = numbers.step(2)
الحلقات التكرارية الـ
Loops
For Loop
هي مناسبة لتكرار جزء من الكود عدد من المرات, نستكمل العمل على النطاق السابق numbers. ننشيء For loop لطباعة الأعداد كالتالي:
val numbers = 1 .. 10
for (num in numbers)
{
println(num)
}
//******* Output ********
1
2
3
4
5
6
7
8
9
10
يمكن أيضا كتابة الـ for loop باستخدام until, و في هذه الحالة يتم طباعة كل الأرقام ما عدا رقم ١٠:
for (num in 1 until 10)
{
println(num)
}
//******* Output ********
1
2
3
4
5
6
7
8
9
نلاحظ أننا نستخدم الكلمة المفتاحية in
. الـ in
دائما تستخدم مع الـ for
loop.
أيضا نستطيع طباعة الأرقام الموجودة في الـ Range بشكل عكسي من ١٠ إلى ١ باستخدام الخاصية downTo كالتالي:
for (num in 10 downTo 1)
{
println(num)
}
//******* Output ********
10
9
8
7
6
5
4
3
2
1
استخدام For مع المصفوفات Arrays
لنفرض أن لدينا مصفوفة بالشكل التالي.
val names = arrayOf("anas", "ahmad", "albaraa", "Adam")
و المطلوب طباعة كل اسم بشكل منفصل باستخدام :
println(names[0])
println(names[1])
println(names[2])
println(names[3])
فبدلا من تكرار الطباعة عدد من المرات من الأفضل استخدام الـ for loop كالتالي:
for (n in names)
{
println(n)
}
تبدأ باستخدام الكلمة for متبوعة بالأقواس و بين الأقواس كل عنصر n بداخل المصفوفة names تتم طباعته كل مرة, حتى تنتهي كل عناصر المصفوفة.
الـ n ترمز إلى كل عنصر من عناصر المصفوفة أي أنها String في هذه الحالة. و مخرجات الكود ستكون:
anas
ahmad
albaraa
Adam
نستطيع أيضاً استخدام الدالة indices
مع المصفوفات, و التي تسمح لنا بالدوران حول الفهرس الخاص بعناصر المصفوفة أي الـ Index. لتتضح الفكرة أكثر شاهد المثال التالي:
for (index in names.indices)
{
println("Element $index is ${names[index]}"
}
//output
Element: 0 is anas
Element: 1 is ahmad
Element: 2 is albaraa
Element: 3 is Adam
بحيث أن name.indices
تعود لنا كل مرة بفهرس من فهارس المصفوفة , المرة الأولى تعود لنا بالـ index 0 و بعدها index 1 , و حتى تنتهي عناصر المصفوفة
و عن طريق الـ index نستطيع الوصول لعناصر المصفوفة كالتالي: [name[index
تتيح الكوتلن أيضا التعامل مع الـ Loops باستخدام الـ While
الصيغة الأساسية للـ While
while (testExpression)
{
// codes inside body of while loop
}
بحيث يتم تنفيذ أمر الطباعة فقط اذا تحقق الشرط الموجود بين الأقواس.
مثال: لطباعة الأعداد من ١ إلى ٤ باستخدام الـ While
طالما أن العددأقل من الـ ٥ في كل مرة يتحقق الشرط يتم تنفيذ الكود بين الأقواس { }
val number = 1
while (number < 5)
{
println(number)
number ++
}
اذا اعجبك الدرس لا تتردد بترك تعليقك.
الدرس التالي نتكلم فيه عن الـ While
و السلام عليكم
محتوى الدورة
الكلمات الدليلية
عن الدرس
0 إعجاب |
1 متابع |
0 مشاركة |
1725 مشاهدات |
منذ 4 سنوات |
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !