منوهای نصب در پنل مدیریت

آموزش کار با حلقه ها در کاتلین

در این آموزش از دوره آموزش جامع زبان کاتلین به آموزش کار با حلقه های در کاتلین می پردازیم. ابتدا انواع حلقه ها در کاتلین را معرفی میکنیم سپس به بررسی هر کدام میپردازیم.

انواع حلقه ها در کاتلین

به طور کلی حلقه ها در کاتلین به سه بخش تقسیم می شوند. 
حلقه while ، حلقه do while و حلقه for .
همانطور که میدانید از حلقه ها برای انجام یک عمل تکراری استفاده می شود. 
در حلقه های while و do while عمل تکراری تا زمانی انجام می شود که یک شرط خاص (شرط مورد نظر ما) بر قرار باشد و زمانی که شرط برقرار نباشد حلقه متوقف میگردد.
در حلقه for انجام عمل تکراری بر اساس یک بازه عددی (یعنی تعداد دفعات خاص) یا بر اساس آیتم های داخل یک کالکشن (مانند لیست، آرایه، مَپ و …) انجام میشود. 
در ادامه به بررسی هر کدام از این سه مورد می پردازیم.

حلقه while در کاتلین

آموزش کار با حلقه ها در کاتلین 1

شکل کلی حلقه while به صورت زیر می باشد.

while (testExpression) {
    // codes inside body of while loop
}

عبارت داخل پرانتز یعنی testExpression از نوع Boolean می باشد یعنی یا true است یا false و تا زمانی که مقدار آن true باشد، کد داخل بلاک اجرا می شود  و هر زمان که مقدار آن false شود دیگر کد اجرا نمی شود

مثال:

var i = 5
while(i <= 10){
    println("number is $i")
    i++
}

خروجی کد بالا به صورت زیر می باشد

number is 5
number is 6
number is 7
number is 8
number is 9
number is 10

مشاهده می کنید که به خاطر وجود ++i داخل حلقه، مقدار ای متغیر هر بار یک واحد افزایش پیدا میکند و پس از 6 بار اجرای حلقه در هفتمین اجرا مقدار آن 11 است و دیگر شرط i <= 10 درست نیس، بنابراین دیگر حلقه اجرا نمی شود.

var i = 5
while(i <= 10)
    println("number is ${i++}")

حلقه do while

آموزش کار با حلقه ها در کاتلین 2

این حلقه تشابه زیادی به حلقه while دارد با این تفاوت که حتی اگر شرط مربوط به حلقه false باشد، باز هم حلقه حداقل یک بار اجرا می شود.

شکل کلی کد این حلقه به صورت زیر می باشد

do {
   // codes inside body of do while loop
} while (testExpression)

ابتدا بدون چک کردن شرط مربوط به حلقه، کد بدنه ی حلقه یک بار اجرا می شود و سپس شرط داخل while چک میشود اگر درست باشد مجددا حلقه اجرا می شود و هر زمان که شرط برقرار نباشد، از حلقه خارج می شود.

مثال:

var sum = 0
var input: String
do {
    print("Enter a number:")
    input = readLine()!!
    sum += input.toInt()
}while (input != "0")
println("sum is $sum")

وقتی کد بالارا اجرا کنیم، خروجی میتواند به صورت زیر باشد

Enter a number:10
Enter a number:15
Enter a number:20
Enter a number:30
Enter a number:0
sum is 75

حلقه for

حلقه for به ما قابلیت انجام تکرار کد روی بازه های عددی، آرایه هاو لیست ها، رشته ها و … و به طور کلی هر چیزی که قابلیت انجام گردش روی آن وجود داشته باشد، مانند مثال هایی که در بالا گفته شد.

شکل کلی حلقه for به صورت زیر می باشد

for (item in collection) {
    // body of loop
}

گردش روی بازه عددی

for (i in 1..5) {
    println(i)
}

اگر بدنه حلقه فقط از یک لاین تشکیل شده باشد، میتوان حلقه را بدون آکولاد نوشت

for (i in 1..5) 
    println(i)

حالت های مختلف گردش روی بازه های عددی با کمک حلقه for

print("Example 1: (i in 1..5) => ")
for (i in 1..5) print(i)
println()
print("Example 2: (i in 5..1) => ")
for (i in 5..1) print(i)
println()
print("Example 3: (i in 5 downTo 1) => ")
for (i in 5 downTo 1) print(i)
println()
print("Example 4: (i in 1..4 step 2) => ")
for (i in 1..5 step 2) print(i)
println()
print("Example 5: (i in 4 downTo 1 step 2) => ")
for (i in 5 downTo 1 step 2) print(i)}

خروجی کد بالا به صورت زیر خواهد بود

Example 1: (i in 1..5) => 12345
Example 2: (i in 5..1) =>
Example 3: (i in 5 downTo 1) => 54321
Example 4: (i in 1..4 step 2) => 135
Example 5: (i in 4 downTo 1 step 2) => 531

در مثال اول حلقه روی یک بازه عددی معمولی گردش میکند.
در مثال دوم هیچ خروجی چاپ نمی شود زیرا باید ابتدای بازه از انتهای بازه کوچکتر باشد.
در مثال سوم چون میخواهیم ابتدای بازه کوچکتر باشد بنابراین باید از down to استفاده کنیم
مثال چهارم و پنجم همانند مثال های قبلی می باشند با این تفاوت که حلقه روی بازه قدم هایی با طول تعیین شده بر میدارد که در اینجا عدد 2 تعیین شده است یعنی یکی در میان روی حلقه گردش می کند.

گردش روی آرایه ها با حلقه for

در کد زیر مشاهده می کنید که چگونه میتوان با کمک حلقه for روی یک آرایه گردش کرد:

val language = arrayOf("Php", "Kotlin", "Python", "Java")
for (item in language)
    println(item)

همچنین میتوان روی اندیس های آرایه نیز گردش کرد:

val language = arrayOf("Php", "Kotlin", "Python", "Java")

for (idx in language.indices)
    println("$idx is ${language[idx]}")

خروجی کد بالا به صورت زیر می باشد

0 is Php
1 is Kotlin
2 is Python
3 is Java

گردش روی رشته ها با حلقه for

val text= "Kotlin"

for (letter in text) {
    println(letter)
}

در بخش پیشرفته زمانی که در مورد کالکشن ها صحبت کنیم، مثال های بیشتری را از حلقه ها و کاربرد آنها روی map و … مشاهده خواهید کرد.

بروزترین آموزش های برنامه نویسی اندروید، جاوا، کاتلین و متریال دیزاین را در اینستاگرام Hetbo Academy دنبال کنید.

1 پاسخ به "آموزش کار با حلقه ها در کاتلین"

ارسال یک پیام

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Hetbo.net 2016 - 2020