در این بخش از مقاله آموزش کاتلین، با عبارت break در این زبان برنامهنویسی آشنا میشویم. عبارت break برای خاتمه یک حلقه استفاده میشود. همچنین با برچسبهای break آشنا خواهیم شد. فرض کنید مشغول کار با حلقهها هستید. گاهی اوقات لازم میشود که حلقه را بیدرنگ و بدون بررسی عبارت تست خاتمه ببخشیم. در این حالت، از عبارت break استفاده میکنیم. این عبارت موجب توقف نزدیکترین حلقه میشود. طرز کار عبارت break در کاتلین شبیه همان عبارت در جاوا است.
طرز کار break چگونه است؟
عبارت berak تقریباً همیشه همراه با سازه if…else استفاده میشود. به عنوان مثال به کد زیر توجه کنید:
for (...) { if (testExpression) { break }
}
اگر testExpression به صورت true ارزیابی شود، break اجرا میشود که حلقه for را خاتمه میبخشد.
مثالی از break در کاتلین
fun main(args: Array<String>) {
for (i in 1..10) { if (i == 5) { break } println(i) }
}
خروجی کد فوق به صورت زیر است:
1 2 3 4
زمانی که مقدار i برابر با 5 شود، عبارت i == 5 درون if به صورت true ارزیابی میشود و break اجرا خواهد شد. این ترتیب اجرای حلقه for خاتمه مییابد.
مثال: محاسبه مجموع تا زمانی که کاربر عدد 0 وارد کند
fun main(args: Array<String>) {
var sum = 0 var number: Int while (true) { print("Enter a number: ") number = readLine()!!.toInt()
if (number == 0) break
sum += number }
print("sum = $sum")
}
خروجی کد فوق به صورت زیر است:
Enter a number: 4 Enter a number: 12 Enter a number: 6 Enter a number: -9 Enter a number: 0 sum = 13
در برنامه فوق، عبارت تست حلقه while همواره به صورت true ارزیابی میشود. در این برنامه حلقه while تا زمانی اجرا میشود که کاربر عدد 0 را وارد کند. زمانی که کاربر عدد 0 وارد کند، break اجرا شده و حلقه while خاتمه مییابد.
برچسب break در کاتلین
آن چه تا کنون در خصوص break مطرح کردیم، شکل بدون برچسب این عبارت بوده است که نزدیکترین حلقه محصور را خاتمه میبخشد. روش دیگری نیز برای استفاده از break به صورت برچسبدار برای خاتمه بخشیدن به حلقه مورد نظر (و نه لزوماً نزدیکترین حلقه محصور) وجود دارد.
طرز کار break برچسبدار چگونه است؟
برچسبها در کاتلین با یک شناسه آغاز شده و سپس یک علامت @ میآید. در مثال زیر @test یک برچسب است که برای نشانهگذاری حلقه while بیرونی استفاده میشود. بدین ترتیب با استفاده از یک عبارت break به همراه برچسب به صورت break@test میتواند حلقه خاصی را متوقف کنید:
fun main(args: Array<String>) {
first@ for (i in 1..4) {
second@ for (j in 1..2) { println("i = $i; j = $j")
if (i == 2) break@first } }
}
خروجی کد فوق به صورت زیر است:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
در مثال فوق، عبارت i==2 به صورت true ارزیابی میشود و break@first اجرا میشود که موجب خاتمه یافتن حلقه با نشانه @first میشود. در مثال زیر یک نسخه کمی متفاوت از برنامه فوق را میبینید. در برنامه زیر break حلقه با نشانه @second را خاتمه میبخشد.
fun main(args: Array<String>) {
first@ for (i in 1..4) {
second@ for (j in 1..2) { println("i = $i; j = $j")
if (i == 2) break@second } }
}
خروجی برنامه فوق به صورت زیر است:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1 i = 3; j = 1 i = 3; j = 2 i = 4; j = 1 i = 4; j = 2
نکته: از آنجا که break در این برنامه برای خاتمه بخشیدن به درونیترین حلقه استفاده شده است، در این حالت، لزومی به استفاده از break برچسبدار وجود ندارد.
به طور کلی سه عبارت پرش به صورت break ،continue و return در کاتلین وجود دارند. در این بخش از مقاله آموزش کاتلین با عبارت break آشنا شدیم. عبارتهای پرشی continue و return نیز در بخشهای بعدی این مقاله ارائه شدهاند.