Thuta Learning
ရှာဖွေရန်
ExercisesProgrammingbeginner

Practice Set: Kotlin Fundamentals

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Practice Set: Kotlin Fundamentals ကို ကိုယ်တိုင် လေ့ကျင့်ကြည့်မယ်
  • သင်ခဲ့ပြီးသား skill တွေကို practice လုပ်ပြီး ခိုင်မာအောင်လုပ်မယ်
  • အမှားရှာ၊ ပြင်တတ်၊ ကိုယ်တိုင် check လုပ်တတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

ဒီ lesson က teaching content မဟုတ်ဘဲ Basic chapter မှာ လေ့လာခဲ့တဲ့ val/var , data type , if/when expression , loop , null safety concept တွေကို self-test လုပ်ဖို့ practice task 4 ခု စုစည်းပေးထားတာပါ။ Task တစ်ခုချင်းစီကို solution ကြည့်ခင် ကိုယ်တိုင် ကြိုးစားရေးကြည့်ဖို့ အကြံပြုပါတယ်။ Difficulty က easy level ဖြစ်ပြီး syntax memory ပြန်လှမ်းဖို့နဲ့ core concept တွေကို ကိုယ်တိုင် code ရေးပြီး အလေ့ကျအောင် ရည်ရွယ်ထားပါတယ်။ Task အားလုံးကို function တစ်ခုတည်းထဲမှာ ဖြေလို့ရပါတယ်။

လေ့ကျင့်ခန်းများ

Task 1: Int variable a , b နှစ်ခုကို declare လုပ်ပြီး when expression သုံးပြီး a > b, a < b, a == b ဆိုတဲ့ 3 case အတွက် message print ပါ။ Task 2: 1 ကနေ 20 အထိ number တွေကို for loop နဲ့ loop ခါပြီး number တစ်ခုချင်းစီရဲ့ 3 နဲ့စား ပြီးလျှင် "Fizz" , 5 နဲ့စား ပြီးလျှင် "Buzz" , နှစ်ခုစလုံးနဲ့စား ပြီးလျှင် "FizzBuzz" မဟုတ်ရင် number ကိုယ်တိုင် print ပါ (classic FizzBuzz) ။ Task 3: nullable String? variable တစ်ခု declare လုပ်ပြီး safe call operator (?.) နဲ့ length ကို print ပါ - value null ဖြစ်ရင် "no value" ဆိုပြီး print ပါ။ Task 4: Int array/list တစ်ခုထဲက even number တွေချည်း အပေါင်းစုစုပေါင်း (sum) ကို while loop တစ်ခု သုံးပြီး တွက်ပါ။

Code နမူနာ

kotlin
fun main() {
    // Task 1: compare numbers with when
    val a = 7
    val b = 12
    when {
        a > b -> println("a is bigger")
        a < b -> println("b is bigger")
        else -> println("equal")
    }

    // Task 2: FizzBuzz 1..20
    for (i in 1..20) {
        val result = when {
            i % 15 == 0 -> "FizzBuzz"
            i % 3 == 0 -> "Fizz"
            i % 5 == 0 -> "Buzz"
            else -> i.toString()
        }
        println(result)
    }

    // Task 3: nullable safe call
    val name: String? = null
    println(name?.length ?: "no value")

    // Task 4: sum of even numbers with while loop
    val numbers = listOf(3, 8, 12, 5, 20, 7, 6)
    var index = 0
    var sum = 0
    while (index < numbers.size) {
        if (numbers[index] % 2 == 0) sum += numbers[index]
        index++
    }
    println("Even sum: $sum")
}
You should see
Comparison message, FizzBuzz sequence 1 ကနေ 20 အထိ, 'no value' text, ပြီးတော့ even number sum ကို console မှာ တွေ့ရပါမယ်။

၅ မိနစ် စမ်းကြည့်

Task 4 ရဲ့ while loop ကို forEach lambda တစ်ခုတည်းနဲ့ ပြန်ရေးကြည့်ပြီး code ဘယ်လောက်တိုသွားလဲ ယှဉ်ကြည့်ပါ - ၅ မိနစ်လောက်ပဲ ကြိုးစားကြည့်ပါ။

သတိလေးတစ်ချက်

Practice task တွေကို ဖြေတဲ့အခါ solution code ကို ချက်ချင်းမကြည့်ဘဲ ကိုယ်တိုင် IDE ဒါမှမဟုတ် Kotlin Playground မှာ run ပြီး error ကို ကိုယ်တိုင်ပြင်ကြည့်ရင် ပိုသင်ယူရလွယ်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • FizzBuzz မှာ i % 3 == 0 ကို i % 15 == 0 ထက် အရင်ရေးမိရင် FizzBuzz case ကို ဘယ်တော့မှ မရောက်နိုင်တော့ပါ - order ကို သတိထားရပါမယ်
  • Safe call operator ?. နဲ့ Elvis operator ?: ကို တွဲသုံးတဲ့နေရာမှာ ?: ရှေ့နောက် space မထားဘဲ ရေးမိလို့ syntax error တက်တတ်ပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

Task 4 ရဲ့ while loop ကို forEach lambda တစ်ခုတည်းနဲ့ ပြန်ရေးကြည့်ပြီး code ဘယ်လောက်တိုသွားလဲ ယှဉ်ကြည့်ပါ - ၅ မိနစ်လောက်ပဲ ကြိုးစားကြည့်ပါ။

You'll know it worked when: Comparison message, FizzBuzz sequence 1 ကနေ 20 အထိ, 'no value' text, ပြီးတော့ even number sum ကို console မှာ တွေ့ရပါမယ်။

Practice Set: Kotlin Fundamentals | Thuta Learning