iOS 102Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Aritmetiksel Operatörler (Arithmetic Operators)

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 02.11.2018 tarihinde güncellendi
Eğitmen :
Etiketler : swift Arithmetic Operators swift aritmetiksel operatörler

 

Standard Operators in Swift

Swift’te 4 adet aritmetiksel operator mevcuttur.

Toplama: (+)

Çıkarma (-)

Çarpma (*)

Bölme (/)

 var totalMinute =  hour * 60 + minute + second / 60

Yukardaki hesaplamada toplam dakikayı bulabilmek için saat 60a çarpılıp, saniye 60a bölünüp dakikayla toplatıldı. Değişkenler arasında aritmetik operatörler bulunur. (arithmetic operators). Bunlar muhakkak daha önce matematik derslerinde görülmüştür (toplama(+), çıkarma(-), çarpma (*) gibi) ve beklenildiği gibi davlanırlar. Örneğin iki değişkenin arasına + koyarsak beklenildiği gibi toplama işlemini gerçekleştirir. Bunların yanında,  işlemlerin sonucunu değişkene atayan atama operetörü (assignment operator)(=) bulunmaktadır.  Örneğin, yukarıdaki işlemin sonucu = işaretiyle totalMinute değişkenine atandı.

Yukarıdaki örneğe dönersek, saatin 5, dakikanın 70 saniyeninse 566 olduğunu varsayalım ve hesaplayalım.

 totalMinute = 5 * 60 + 70 + 566 / 60 

 totalMinute = 300 + 70 + 9.4

 totalMinute = 379.4

Burada görüldüğü gibi hesaplama yapılırken literal değerlere ihtiyaç duyulur. Mesela saatin literali olan 5 işleme sokularak, sonuç 379.4 bulundu. Bu hour * 60 + minute + second / 60’nun değeridir. (expressions) 

 

Operatörlerin Öncelik Sırası

 

Swiftteki tüm operatörler standart matematiksel operatör olduğundan, standart matematiksel işlem sırası kullanılarak uygulanırlar. Ancak standart matematik sınıfınızdan olmayan operatörleri kullanmaya başladığımızda, operasyonların sırası beklediğinizden farklı olabilir. İşlem sırası;

1-Parantez içi ifadeler
2-üstel ifadeler
3-çarpma/bölme
4-toplama/çıkarma

Operand: Bir operatör tarafından etkilenen bir hedef veya değer. 

              8 - 5  işlemindeki 8 ve 5

Precedence: İşlem önceliği için oluşturulan kurallar bütünü

              12 * 4 / 3 işleminde ilk 12 * 4’ün hesaplanması

Precedence Group: Aynı önceliği paylaşan operatörler

Associativity: Aynı öncelikli operatörlerin uygulandığı yönü belirleyen bir özellik; genellikle bireysel operatörler, solda hesaplama(left-associative) veya sağdan(right-associative) hesaplama olarak belirtilir. 

Örneğin;

          ->left-associative

          5 + 4 + 2

          ((5 + 4) + 2)

          (9 + 2)

          11

         ->right-associative (^örnek için kullanılmıştır,build olmaz)

         5 ^ 2 ^ 2

         (5 ^ (2 ^ 2))

         (5 ^ 4)

        625

Aritmetiksel operatörlerle ilgili bazı özellikler;

Bir sayı 0’a bölündüğünde build olmaz.

Var five = 5

Var zero = 0

Var result = five / zero 

//Division by zero

 

Aşağıdaki ifadeler birbirlerinin aynısıdır.

totalPoint = totalPoint + currentPoint

totalPoint += currentPoint 

 

Swift’te, aritmetik işlemler sonucunda default olarak aşma (overflow) değerlerine müsaade edilmez. Overflow durumuna izin verilmesi isteniyorsa &+,&* vb overflow sembolleri kullanılmalıdır.  + sembolü matematiksel toplama dışında iki stringin birbirine eklenmesi işlemini de gerçekleştirir

var u:String = "güzel"

var v:String = "Istanbul"

var z:String

z = u + v

Kalan (REMAINDER) Operatörü

C ve Java’da olduğu gibi Swift’te de % sembolü iki tamsayının bölümünden kalan değeri hesaplar:

7 % 4 = 3 olacaktır.

var a:Int = 7
var b:Int = 3
var c:Int = 2
var d:Int = 7
var e:Int = 8

print("\(a)%\(b)=\(a%b)");
print("\(a)%\(c)=\(a%c)");
print("\(a)%\(d)=\(a%d)");
print("\(a)%\(e)=\(a%e)");

 

Double tipler için kalan sayı bulma Fonksiyonu

Double değerşer için formTruncatingRemainder fonksiyonu kullanılır.

mutating func formTruncatingRemainder(dividingBy other: Self)

 

import Foundation
 var x = 8.625
print(x / 0.75)
// Prints "11.5"

let q = (x / 0.75).rounded(.towardZero)
// q == 11.0
x.formTruncatingRemainder(dividingBy: 0.75)
// x == 0.375

let x1 = 0.75 * q + x
// x1 == 8.625

 

Arttırma ve Azaltma Operatörü

Swift 3den sonra alışılmışın aksine deger++ kullanımı yerine değer += 1 kullanılır.

var counter = 0

counter += 1 // sayıyı 1 ekler

counter -= 1 // sayıdan 1 çıkarır

 

Karakök Hesaplama

 

import Foundation

var square = 9.4

var floored = floor(square)

var root = sqrt(floored)

 

print("Starting with \(square), we rounded down to \(floored), then took the square root to end up with \(root)")

 

Üs Alma

Bir sayının üssünü hesaplamak için Swiftte ayrı bir sembol yoktur (C’de de böyledir). Üs hesaplamak için Foundation sınıfı içinde tanımlanmış pow fonksiyonu kullanılır. Yazılış biçimi, pow(a,b) şeklindedir. Burada a baz, b ise üstür.

import Foundation
var x = 4

print("SAYI...\(x).....2 ÜZERİ.\(x)= \(pow(2,x))")

İrrasyonel Sayıların Hesaplanması

irrasyonel ifadeler için gene Swift’te özel fonksiyonlar yoktur. Bu tip fonksiyonlar da pow fonksiyonu yardımı ile hesaplanır.

x (1/3) şeklinde ifade edilerek pow(x,1.0/3.0) gibi hesaplanır.

import Foundation
var x = 4.0
print("SAYI...\(x).....KÜPKÖKÜ \(pow(x,1.0/3.0))")

 

Bileşik Atama Komutları (Compound Assignment Commands)

C’dekine tamamen benzer şekilde, Swift’te de bileşik atama operatörleri mevcuttur. Örneğin, toplama için += sembolü kullanılır.

a += b  ifadesiyle a = a + b ifadesi birbirinin aynısıdır.

var a:Double=7.5
var b:Double=3.0

a += b
b += a

print("a= \(a)")
print("b= \(b)")

Tekli Eksi (Unary Minus) Sembolü​

Önüne geldiği değerin negatifini oluşturur. – ‘den sonar boşluk olmamalıdır

var a:Double = 2
var b:Double = 3
var c:Double
var d:Double

c = -b
d = -(-a)

print("a= \(a)")
print("b=\(b)")
print("c=\(c)")
print("d=\(d)")

 

Tekli Artı (Unary Plus) Sembolü

Tamamen tekli – sembolü gibi kullanılır. Önüne geldiği değerin işaretini değiştirmez.

 

Standard Operators in Swift

Aşağıdaki tabloda standart operatörleri görebilirsiniz. Aşağıda listelenen öncelik gruplarının en yüksekten en düşüğe doğru sırasıyla; Multiplication, Addition, Assignment