عملگرهای ریاضی

کاتلین از عملگرهای ریاضی برای انجام محاسبات استفاده می‌کند. جدول زیر عملگرهای ریاضی کاتلین را نشان می‌دهد :

عملگر مثال نتیجه
+ var1 = var2 + var3 Var1 برابر است با حاصل جمع var2 و var3
var1 = var2 – var3 Var1 برابر است با حاصل تفریق var2 و var3
* var1 = var2 * var3 Var1 برابر است با حاصلضرب var2 در var3
/ var1 = var2 / var3 Var1 برابر است با حاصل تقسیم var2 بر var3
% var1 = var2 % var3 Var1 برابر است با باقیمانده تقسیم var2 و var3

حال می‌توانیم با ایجاد یک برنامه نحوه عملکرد عملگرهای ریاضی در کاتلین را یاد بگیریم :

  1: fun main(args: Array<String>)
  2: {
  3:     //Variable declarations
  4:     val num1: Int
  5:     val num2: Int
  6: 
  7:     //Assign test values
  8:     num1 = 5
  9:     num2 = 3
 10: 
 11:     println("The sum of $num1 and $num2 is "        + (num1 + num2))
 12:     println("The difference of $num1 and $num2 is " + (num1 - num2))
 13:     println("The product of $num1 and $num2 is "    + (num1 * num2))
 14:     println("The quotient of $num1 and $num2 is "   + (num1 / num2))
 15:     println("The remainder of $num1 and $num2 is "  + (num1 % num2))
 16: }
The sum of 5 and 3 is 8
The difference of 5 and 3 is 2
The product of 5 and 3 is 15
The quotient of 5 and 3 is 1
The remainder of 5 divided by 3 is 2

برنامه بالا نتیجه هر عبارت را نشان می‌دهد. در این برنامه از متد println() برای نشان دادن نتایج در سطرهای متفاوت استفاده شده است. خطوط 15-11 کد بالا را به صورت زیر هم می توان نوشت:

println("The sum of $num1 and $num2 is ${num1 + num2}")
println("The difference of $num1 and $num2 is ${num1 - num2}")
println("The product of $num1 and $num2 is ${num1 * num2}")
println("The quotient of $num1 and $num2 is ${num1 / num2}")
println("The remainder of $num1 and $num2 is ${num1 % num2}")

دیگر عملگرهای کاتلین عملگرهای کاهش و افزایش هستند. این عملگرها مقدار 1 را از متغیرها کم یا به آنها اضافه می‌کنند. از این متغیرها اغلب در حلقه‌ها استفاده می‌شود :

عملگر مثال نتیجه
++ var1 = ++var2 مقدار var1 برابر است با var2 بعلاوه 1
var1 = –var2 مقدار var1 برابر است با var2 منهای 1
++ var1 = var2++ مقدار var1 برابر است با var2
به متغیر var2 یک واحد اضافه می‌شود
var1 = var2– مقدار var1 برابر است با var2
از متغیر var2 یک واحد کم می‌شود

به این نکته توجه داشته باشید که، محل قرار گیری عملگر در نتیجه محاسبات تأثیر دارد. اگر عملگر قبل از متغیر var2 بیاید، افزایش یا کاهش var1 اتفاق می افتد. چنانچه عملگرها بعد از متغیر var2 قرار بگیرند، ابتدا var1 برابر var2 می‌شود و سپس متغیر var2 افزایش یا کاهش می‌یابد. به مثال‌های زیر توجه کنید :

fun main(args: Array<String>)
{
    var x = 0
    var y = 1

    x = ++y

    println("x = $x")
    println("y = $y")
}
x = 2
y = 2
fun main(args: Array<String>)
{
    var x = 0
    var y = 1

    x = --y

    println("x = $x")
    println("y = $y")
}
x = 0
y = 0 

همانطور که در دو مثال بالا مشاهده می‌کنید، درج عملگرهای — و ++ قبل از عملوند y باعث می‌شود که ابتدا یک واحد از y کم و یا یک واحد به y اضافه شود و سپس نتیجه در عملوند x قرار بگیرد. حال به دو مثال زیر توجه کنید :

fun main(args: Array<String>)
{
    var x = 0
    var y = 1

    x = y--

    println("x = $x")
    println("y = $y")
}
x = 1
y = 0
fun main(args: Array<String>)
{
    var x = 0
    var y = 1

    x = y++

    println("x = $x")
    println("y = $y")
}
x = 1
y = 2

همانطور که در دو مثال بالا مشاهده می‌کنید، درج عملگرهای — و ++ بعد از عملوند y باعث می‌شود که ابتدا مقدار y در داخل متغیر x قرار بگیرد و سپس یک واحد از y کم و یا یک واحد به ان اضافه شود.