Loops و الـ Ranges في الكوتلن : For - while

م. خديجة باحويرثمنذ 4 سنوات

السلام عليكم و رحمة الله و بركاته

النطاق - 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)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !