آموزش زبان کاتلین – درس ۸ (شرط IF)

نویسنده : سید ایوب کوکبی ۶ آبان ۱۳۹۷

آموزش زبان کاتلین – درس 8 (شرط IF)

روش قدیمیِ استفاده از if..else

سینتکس رایج if..else در اغلب زبان‌ها به این شکل است:

if (testExpression) {
// codes to run if testExpression is true
}
else {
// codes to run if testExpression is false
}

 

در صورت که عبارت testExpression به مقدار true ارزیابی شود، کدهای داخل بلاک if اجرا می‌شود. بخش اختیاری else نیز در صورت true نبودن عبارت شرطی اجرا خواهد شد.

مثال رایج از if…else

fun main(args: Array<String>) {

val number = -10

if (number > 0) {
print(“Positive number”)
} else {
print(“Negative number”)
}
}

 

خروجی:

Negative number

 

عبارت if در کاتلین

برخلاف جاوا (و بسیاری از زبان‌های برنامه‌نویسی دیگر) در کاتلین می‌توان if را به صورت یک عبارت استفاده کرد. عبارتی که یک مقدار را برمی‌گرداند.

مثال

fun main(args: Array<String>) {

val number = -10

val result = if (number > 0) {
“Positive number”
} else {
“Negative number”
}

println(result)
}

 

خروجی

Negative number

 

وقتی از if در قالب یک عبارت یا Expression استفاده می‌کنید بخش else اجباری است. در صورتی که if یا else تنها یک دستور داشته باشد، می‌توانید آکولادها را بردارید.

fun main(args: Array<String>) {
val number = -10
val result = if (number > 0) “Positive number” else “Negative number”
println(result)
}

 

در واقع این قابلیت جایگزینی برای ternary operator در جاوا است که در کاتلین وجود ندارد.

مثال: بلاک if با چندین عبارت

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

fun main(args: Array<String>) {

val a = -9
val b = -11

val max = if (a > b) {
println(“$a is larger than $b.”)
println(“max variable holds value of a.”)
a
} else {
println(“$b is larger than $a.”)
println(“max variable holds value of b.”)
b
}
println(“max = $max”)
}

 

بخوانید  آموزش زبان کاتلین – درس 10 (حلقۀ while و do...while)

خروجی:

-۹ is larger than -11.
max variable holds value of a.
max = -9

 

if…else…if در کاتلین

شما می‌توانید بلاکی از کدها توسط if…else…if بازگردانید.

مثال:

fun main(args: Array<String>) {

val number = 0

val result = if (number > 0)
“positive number”
else if (number < 0)
“negative number”
else
“zero”

println(“number is $result”)
}

 

این کد بررسی می‌کند number مثبت، منفی یا صفر است و متناسب با هرکدام مقدار مناسبی را بازمی‌گرداند.

ifهای تودرتو در کاتلین

عبارت if را می‌تون داخل if دیگری قرار داد که به این حالت if تودرتو گفته می‌شود.

مثال:

fun main(args: Array<String>) {

val n1 = 3
val n2 = 5
val n3 = -2

val max = if (n1 > n2) {
if (n1 > n3)
n1
else
n3
} else {
if (n2 > n3)
n2
else
n3
}

println(“max = $max”)
}

 

خروجی:

max = 5

 

سید ایوب کوکبی

نویسنده و مترجم...

0 دیدگاه

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