سلام رفیق! 🖐️ وقتشه یه کم عمیقتر با چرخههای تکرار تو مربع«Kotlin» آشنا بشی. امروز سراغ حلقههای «While» و «do-while» میریم. این دو مثل یه سرباز وظیفهشن که تا وقتی شرط برقراره، دست از کار نمیکشن! 😎
🔹 تفاوت کلیدی: «While» اول شرط رو چک میکنه بعد بدنه رو اجرا میکنه، اما «do-while» تضمین میده که بدنه حداقل یه بار اجرا بشه. این یعنی: اول انجام بده، بعد بررسی کن! ⚡
مثال واقعی: فرض کن تو یه اپلیکیشن فروشگاهی، تا وقتی که کاربر محصولی رو به سبد خرید اضافه نکرده، یه پیام هشدار نشون بدی. اینجا «While» جواب میده. ولی اگه بخوای اول یه بار پیام رو نشون بدی و بعد شرط رو چک کنی، «do-while» انتخاب بهتریه.
حالا بریم سر کد:
🧠 تو این کد: اول «While» تا وقتی که count کمتر از ۵ باشه، اعداد رو چاپ میکنه. بعد «do-while» رو میبینی که حتی اگه attempts از اول ۳ باشه، بازم یه بار چاپ میشه. این تفاوت ظریف تو خیلی از سناریوهای واقعی مثل ورودی کاربر یا پردازش دادهها کاربرد داره.
💡 نکته مهم: از این حلقهها وقتی استفاده کن که تعداد دقیق تکرار رو ندونی. مثلاً منتظر پاسخ کاربر بمونی تا یه شرط خاص رخ بده.
#Codeit #Android #Kotlin #Jetpack #WhileLoop #DoWhileLoop #KotlinBeginners #ProgrammingBasics
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
🔹 تفاوت کلیدی: «While» اول شرط رو چک میکنه بعد بدنه رو اجرا میکنه، اما «do-while» تضمین میده که بدنه حداقل یه بار اجرا بشه. این یعنی: اول انجام بده، بعد بررسی کن! ⚡
مثال واقعی: فرض کن تو یه اپلیکیشن فروشگاهی، تا وقتی که کاربر محصولی رو به سبد خرید اضافه نکرده، یه پیام هشدار نشون بدی. اینجا «While» جواب میده. ولی اگه بخوای اول یه بار پیام رو نشون بدی و بعد شرط رو چک کنی، «do-while» انتخاب بهتریه.
حالا بریم سر کد:
fun main() {
var count = 0
// While loop: شرط اول بررسی میشه
while (count < 5) {
println("شماره $count")
count++
}
println("---- تمام شد while ----")
// do-while loop: حداقل یک بار اجرا میشه
var attempts = 0
do {
println("تلاش ${attempts + 1}")
attempts++
} while (attempts < 3)
}
🧠 تو این کد: اول «While» تا وقتی که count کمتر از ۵ باشه، اعداد رو چاپ میکنه. بعد «do-while» رو میبینی که حتی اگه attempts از اول ۳ باشه، بازم یه بار چاپ میشه. این تفاوت ظریف تو خیلی از سناریوهای واقعی مثل ورودی کاربر یا پردازش دادهها کاربرد داره.
💡 نکته مهم: از این حلقهها وقتی استفاده کن که تعداد دقیق تکرار رو ندونی. مثلاً منتظر پاسخ کاربر بمونی تا یه شرط خاص رخ بده.
#Codeit #Android #Kotlin #Jetpack #WhileLoop #DoWhileLoop #KotlinBeginners #ProgrammingBasics
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
❤1
🎯 تابع با پارامتر یعنی کدی که هر بار یه جواب جدید بده!
مثلاً یه تابع بنویس که اسم هر کسی رو بگیره و جدا سلام کنه ✋
📌 پارامترها مثل ورودیهای یه دستگاهن:
دستگاه قهوهساز رو در نظر بگیر ☕ – با دانههای مختلف، قهوه متفاوت میگیری.
توابع Kotlin هم همینکارو میکنن با پارامترهاشون.
🔧 یه مثال واقعی:
فرض کن توی اپت باید به کاربرا پیام خوشآمد بگی. با پارامتر میتونی اسم و سنش رو بدی و خروجی شخصیسازی بشه.
👇 این تابع ساده رو ببین:
✅ چی کار میکنه؟
– دو تا پارامتر ورودی میگیره:
– خروجی رو با مقادیر متفاوت چاپ میکنه
مثلاً صدا زدنش اینطوریه:
🚀 نکته مهم:
با پارامترها تابعقابل استفاده مجدد میشه و کدت خشکتر از همیشهست.
از یه تابع برای هزاران کاربر مختلف استفاده کن فقط با عوض کردن ورودیها.
#Codeit #Android #Kotlin #Jetpack #Functions #ProgrammingBasics #KotlinBeginner
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
مثلاً یه تابع بنویس که اسم هر کسی رو بگیره و جدا سلام کنه ✋
📌 پارامترها مثل ورودیهای یه دستگاهن:
دستگاه قهوهساز رو در نظر بگیر ☕ – با دانههای مختلف، قهوه متفاوت میگیری.
توابع Kotlin هم همینکارو میکنن با پارامترهاشون.
🔧 یه مثال واقعی:
فرض کن توی اپت باید به کاربرا پیام خوشآمد بگی. با پارامتر میتونی اسم و سنش رو بدی و خروجی شخصیسازی بشه.
👇 این تابع ساده رو ببین:
fun greet(name: String, age: Int) {
println("سلام $name! سنت $age ساله.")
}
✅ چی کار میکنه؟
– دو تا پارامتر ورودی میگیره:
name (رشته) و age (عدد) – خروجی رو با مقادیر متفاوت چاپ میکنه
مثلاً صدا زدنش اینطوریه:
greet("آرین", ۲۵) 👈 خروجی: "سلام آرین! سنت ۲۵ ساله."🚀 نکته مهم:
با پارامترها تابعقابل استفاده مجدد میشه و کدت خشکتر از همیشهست.
از یه تابع برای هزاران کاربر مختلف استفاده کن فقط با عوض کردن ورودیها.
#Codeit #Android #Kotlin #Jetpack #Functions #ProgrammingBasics #KotlinBeginner
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
❤2🔥1
📦 تو کاتلین، کدهات رو توی پوشههای خوشراست به اسم «Package» مرتب میکنی.
🧠 هر «Package» یه فضای مشخص برای کلاسها، توابع و متغیرهاست تا سورسکدت شلوغ نشه.
🔍 مثلاً همهی کلاسهای مربوط به کاربر رو میری توی «Package» به اسم
📥 برای استفاده از محتوای یه «Package» دیگه، باید با «import» اون رو صدا بزنی.
⚡️ «Import» مثل یه میانبر میمونه: به جای نوشتن مسیر کامل هر بار، یه بار «import» میکنی و بعد اسم سادهش رو مینویسی.
🎯 مثال واقعی: فرض کن توی پروژهات یه کلاس تو «Package» به اسم
حالا توی فایل دیگهای میخوای از این کلاس استفاده کنی:
📌 اینجا
📁 بستهبندی درست کدها رو خواناتر میکنه و از تداخل اسمی جلوگیری میکنه.
💡 نکته: توی «Jetpack Compose» هم از همین قاعده پیروی کن؛ هر صفحه رو توی «Package» مجزاش بذار تا نگهداری کد راحتتر بشه.
#Codeit #Android #Kotlin #Jetpack #ProgrammingBasics #CleanCode
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
🧠 هر «Package» یه فضای مشخص برای کلاسها، توابع و متغیرهاست تا سورسکدت شلوغ نشه.
🔍 مثلاً همهی کلاسهای مربوط به کاربر رو میری توی «Package» به اسم
model و بخش UI رو توی ui. 📥 برای استفاده از محتوای یه «Package» دیگه، باید با «import» اون رو صدا بزنی.
⚡️ «Import» مثل یه میانبر میمونه: به جای نوشتن مسیر کامل هر بار، یه بار «import» میکنی و بعد اسم سادهش رو مینویسی.
🎯 مثال واقعی: فرض کن توی پروژهات یه کلاس تو «Package» به اسم
utils داری: // file: src/main/kotlin/com/example/app/model/User.kt
package com.example.app.model
data class User(val name: String, val age: Int)
حالا توی فایل دیگهای میخوای از این کلاس استفاده کنی:
// file: src/main/kotlin/com/example/app/ui/ProfileScreen.kt
package com.example.app.ui
import com.example.app.model.User
fun showProfile() {
val user = User("Sara", 28)
println(user)
}
📌 اینجا
import com.example.app.model.User باعث شده بدون نوشتن مسیر کامل، مستقیم User رو استفاده کنیم. 📁 بستهبندی درست کدها رو خواناتر میکنه و از تداخل اسمی جلوگیری میکنه.
💡 نکته: توی «Jetpack Compose» هم از همین قاعده پیروی کن؛ هر صفحه رو توی «Package» مجزاش بذار تا نگهداری کد راحتتر بشه.
#Codeit #Android #Kotlin #Jetpack #ProgrammingBasics #CleanCode
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
🔥2