iOS 101Baş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 Atama Operatörleri

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 11.05.2016 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : obj-c aritmetiksel atama operatörü obj-c operatörler

 

Operatör

     Sembolü

     Kullanılışı

            İşlem sonucu

Atama

 =

 x = y

y’nin değerini x’e ata

Topla-ata

 + =

 x + = y

x + y’nin değerini x’e ata

Çıkar-ata

 - =

 x = y

x y’nin değerini x’e ata

Çarp-ata

 * =

 x * = y

x * y’nin değerini x’e ata

Böl-ata

 / =

 x / = y

x / y’nin değerini x’e ata

Kalanını ata

 % =

 x % = y

x % y’nin değerini x’e ata

 

Tablodan kolayca anlayacağımız üzere,  x + = y ifadesi x = x + y ifadesine, x % = y ifadesi de x = x % y ifadesine denktir. = operatörünün atama amacı ile kullanıldığını biliyoruz. Sembolün sol tarafındaki operand bir sol taraf operandı (left hand operand, Lvalue) olmalıdır.

Sol taraftaki operand (değişken, dizi elemanı, yapı elemanı vb.) sağ taraftaki operandın değerini bellekte saklar.

ÖRNEK:

int k ;
double l ;
l = k = 13.72 ;

Yukardaki komutlar ile, = sembolünün birleşme özelliği sağdan sola olduğu için,

( l = (k = 13.72)) ;

sırasıyla atamalar yapılarak k ve l’nin değerleri 13 olarak bulunur (k bir int’dir). Sonuçlar, aşağıdaki program yardımıyla test edilmiştir:

 

#import <Foundation/Foundation.h>

int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];

    int k;
    double l;
    l = k = 13.72;
    NSLog(@"\nl=%f",l);
    NSLog(@"\nk=%i",k);
}

 

PROGRAMIN ÇIKTISI:

l=13.000000
k=13

 

C programı içinde;

x = x * 10 ;

şeklindeki bir ifade x * = 10 ; şeklinde yazılabilir. Kodu bu şekilde yazmak, hata olasılığını azaltır, okunabilirliği artırır ve ayrıca derleyicinin daha etkin bir şekilde nesne kodu (object code) üretmesini sağlar.

Bu operatörler kullanılırken önceliklere dikkat edilmelidir.

 

ÖRNEK:

x = x * 5 – 2 ; ifadesi x * = 5 – 2 ; ile aynı değildir. Çıkarma () operatörü, atamalardan daha yüksek öncelikli, çarpma da çıkarmadan yüksek öncelikli olduğu için ifade aşağıdaki gibi yorumlanır.

 

1.ifade

x = x * 5 – 2 ;

x = ( (x * 5) – 2) ;

 

2.ifade

x * = 5 – 2 ;

x*=(5-2);

x = x * (5 – 2) ;


Aşağıdaki programda bu tür operatörlerin yer aldığı ifadeleri ve sonuçları görüyoruz:

 

#import <Foundation/Foundation.h>
 
int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
 
    int a, b, c, x;
    float y, z;

    a = 5;
    b = 8;
    c = 7;
    x = 2;
    y = 7.4;
    z = 12.35;
    a += b + c - z ;
    b /= y * z + a * b ;
    c %= x + a ;
    z -= x * c + a ;
    a *= b + (c *= x) ;

    NSLog(@"\na = %i \n", a);
    NSLog(@"\nb = %i\n", b);
    NSLog(@"\nc = %i \n", c);
    NSLog(@"\nz = %f \n", z);

    return 0;
}

 

 

SONUÇ:

a = 98

b = 0

c = 14

z = -8.650000