OCA Java imtahan mövzuları

Compound Assignment Operators

java-compound-assignment-operators
Written by Mushfiq Mammadov

Compound Assignment Operators dedikdə +=, -=*=/= və s. operatorlar nəzərdə tutulur.

int x = 2, z = 3;
x = x * z;    // Simple assignment operator
x *= z;       // Compound assignment operator

x += 2;
System.out.println(x);  // output: 20
x =+ 2;
System.out.println(x);  // output: 2

Compound assignment operatorunun sol tərəfində dayanan dəyişən (x) həmin sətrə kimi artıq elan olunmuş dəyişən olmalıdır, əks halda compile xətası verəcəkdir:

  • int y += 2;  // does not compile

Əgər bu operator çaşdırıcı formada tərsinə yazılarsa, compile error verməyəcək!

int k =+ 2;    // positive number
int m =- 2;    // negative number
System.out.printf("k = %d and m = %d %n", k, m);   // k = 2 and m = -2

Compound operator həm də ona görə faydalıdır ki, bizi açıq-aşkar cast etməkdən xilas edir:

long x = 10;
int y = 5;
y = y * x;          // does not compile
y = (int) y * x;    // does not compile; mötərizə olmadığına görə
y = (int) (y * x);  // line1
y *= x;             // line2

line1line2 mahiyyətcə bir-biri ilə eyni koddur. line2 sətrində y əvvəlcə long tipinə çevrilir, long tipində olan x dəyişəninə vurulur və alınan nəticə sonda yenidən int tipinə cast olunur.

Digər nümunələrə baxaq:

double d = 10.8;
int i = 5;
i += d;
System.out.println(i);  // output: 15 not 15.8

short s = 3;
s += 4.6;               // is equivalent to: (short)(s + 4.6);
System.out.println(s);  // output: 7

long x = 5;
long y = (x=3);
System.out.println(x);  // Outputs 3
System.out.println(y);  // Also, outputs 3

 

[topics lang=az]

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.