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

آموزش دستورات  شرطی  و حلقه ها  در کاتلین
فهرست مقاله [نمایش]

     

    if, when, for, while دستورات شرطی  

    قبل از خواندن این مقاله برای درک بهتر  پیشنهاد می کنم که مقاله  آموزش مقدماتی کاتلین در اندورید که پیش نیاز این موضوع است را مطالعه نمایید.

    عبارات شرطی برای مقایسه به کار میروند که از عملگر های ریاضی هم درون آنها استفاده میشود.  

    If دستور شرطی

    If  برای مقایسه دو دستور به کار میرو و داخل {} عملیاتش را انجام میدهد البته اگه دستورات یک خط باشد نیازی به {} نیست

    var a=20
    var b=15
    if (a>b){
        println("عدد a بزرگتر از عدد b است")
    }
    

    مقایسه string

    var name:String="maysam"
    if (name=="maysam") 
        println("نام شما: $name")
    

    اما بعضی مواقع ما یک شرط داریم که اگر اجرا نشود باید یک عملیات دیگر انجام شود از else استفاده میکنیم

    var a=10
    var b=15
    if (a>b){
        println("عدد a بزرگتر از عدد b است")
    }else{
        println("عدد b بزرگتر از عدد a است")
    }
    

    دستور شرطی when

    when به جایswitch  که در زبان های  cاستفاده میشد آمده است که  البته ساده تر است.

    var a=2
    when (a) {
        1 -> print("a == 1")
        2 -> print("a == 2")
        else -> { // Note the block
            print("a is neither 1 nor 2")
        }
    }
    

    when  با switch  کمی فرق دارد در when  از case  و break استفاده نمیشود و شرط هامون رو به صورت lambda مینویسیم در کد بالا تک شرطی هست یعنی اگه مثلا1بود یا 2 بود کار را انجام بده در switch  از حالت default  استفاده میشد ولی در اینجا از else  استفاده میشود. ما ممکن است برای دو مقدار از متغیر یک عملیات را بخواهیم انجام بدهیم به صورت زیر کد مینویسیم

    var a=1
    when (a) {
        0, 1 -> print("a == 0 or a == 1")
        else -> print("عدد a خارج از رنج میباشد")
    }
    

    ما میتوانیم در when  از متغیر خارجی هم استفاده کنیم و با چک کردن آن متغیر در when عملیات انجام بدهیم

    var a=1
    var s=1
    when (a) {
        s -> print("عدد s با a برابر است")
        else -> print("عدد s با a برابر نیست")
    }
    

    در when  میتوانیم از رنجی از اعداد یا لیستی از اعداد استفاده کنیم

    var a=9
    var validNumbers=listOf(1,2,3,4,5,6,7,8,9,10)
    when (a) {
        in 1..10 -> print("عدد a در رنج اعداد هست")
        in validNumbers -> print("عدد a  وجود دارد")
        !in 10..20 -> print("عدد a در رنج اعداد وجود ندارد")
        else -> print("شروط ما هیچکدام اجرا نشد")
    }
    

    یک حالت دیگر این که یک object  از نوع Any  به when  بدهیم پیاده سازی این روش کمی فرق دارد از متد استفاده کردیم که در مقاله های بعدی با متد آشنا خواهید شد کد به صورت زیر است برای چک کردن این که ورودی String  است از کلمه is  استفاده میکنیم

    fun hasonline(a: Any) = when(a) {
        is String -> a.startsWith("online")
        else -> false
    }
    

    حلقه ها در زبان کاتلین

    For Loops

    حلقه ها برای تکرار یک عملیات یا پیمایش لیست ها مورد استفاده قرار میگیرند

     var names= listOf("kotlin","java","android","c#")
    for (item in names) }
    print(item)
    {
    

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

    برای نوشتن حلقه برای طیف بزرگی از اعداد نیاز نیست که همه اعداد رو درون حلقه بنویسیم در اینجا range کاربرد دارد

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

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

    for (i in 60 downTo 0 step 2) {
        println(i)
    }
    

    در این جا حلقه را برعکس پیمایش میکنیم گفتیم که از 60 شروع کن تا برسی به صفر هربار 2 واحد از عدد کم کن این حلقه هم 30 بار تکرار میشود

    اگر بخواهیم حلقه خود را روی یک آرایه اعمال کنیم به صورت زیر عمل میکنیم و تعداد اجزای آرایه را نمایش میدهیم.

    var array= listOf(1,2,3,4,5,6,7,8,9,10)
    for (i in array.indices) {
        println(array[i])
    }
     
    

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

    var array= listOf(1,2,3,4,5,6,7,8,9,10)
    for ((index, value) in array.withIndex()) {
        println("index= $index value= $value")
    }
    

    While Loops

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

    var a = 10
    while (a > 0) {
       //انجام عملیات
    }
    
    

    حلقه do while به این شکل هست که do اجرا میشود و یک کاری را انجام میدهد که شرط while  را پاس کند اگر در do  شرط پاس شد while  اجرا میشود در غیر اینصورت از while  رد میشود.

    do {
        val y = "android"
    } while (y != null) // آیا y  مخالف تهی است
    
    

     

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

    سوالات خود را در قسمت نظرات مطرح کنید.

    اطلاعات نویسنده
    • نویسنده: میثم بابائی

    ارسال دیدگاه

    برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربری‌تان شوید


    دیدگاه کاربران