Arifmetik əməliyyatlar
Ən sadə şeydən - arifmetik əməliyyatlardan başlayaq. Bunlar məşhur toplama (+ işarəsi), çıxma (-), vurma (*) və bölmədir (/).public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y);
}
}
Konsol çıxışı:
1032
966
32967
30
Siz artıq bütün bunlardan istifadə etmisiniz. Onlara bir əməliyyat əlavə edə bilərsiniz %
- bölmənin qalan hissəsi.
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 33%2;
System.out.println(y);
}
}
Konsol çıxışı:
1
Bu misalda 33-ü 2-yə bölürük. Nəticədə 16-nı alırıq və 2-yə bölünməyən əlavə “quyruq” qalır. Bu “quyruq” “bölünmənin qalığı” əməliyyatının nəticəsi olacaq. Java (həmçinin riyaziyyat) müqayisə operatorlarını tətbiq edir . Yəqin ki, onları məktəbdən də tanıyırsınız:
- bərabərdir (
==
) - daha çox (
>
) - az (
<
) >=
( ) -dən böyük və ya bərabər<=
( ) -dən az və ya bərabər- bərabər deyil (
!=
)
==
“Bərabərdir” əməliyyatı bir işarə ilə deyil, kimi yazılır =
. Java-da vahid işarəsi =
təyinat operatorudur, burada dəyişənə nömrə, sətir və ya başqa dəyişənin dəyəri təyin edilir.
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x=y);// expect false to be printed to the console
}
}
Konsol çıxışı:
999
Vay! Bu, açıq-aydın gözlədiyimiz nəticə deyil. Bu, tamamilə fərqli bir məlumat növüdür: görməyi gözlədik boolean
, lakin bir nömrə əldə etdik. Bunun səbəbi, mötərizədə müqayisə deyil, təyinat əməliyyatımız var. x=y
Dəyər y
(999) dəyişənə təyin edildi x
və sonra biz onu x
konsola çap etdik. Düzgün seçim:
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x==y);
}
}
Konsol çıxışı:
false
İndi 2 rəqəmi düzgün müqayisə etdik! :) Təyinat əməliyyatının başqa bir xüsusiyyəti ( =
) onun "zəncirlənmiş" edilə bilməsidir:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
int z = 256;
x = y = z;
System.out.println(x);
}
}
Konsol çıxışı:
256
Unutmayın: tapşırıq sağdan sola aparılır. Bu ifadə ( x = y = z
) addımlarla yerinə yetiriləcək:
- y = z, yəni y = 256
- x = y, yəni x = 256
Unar əməliyyatlar
Onlara "uno" - "bir" sözündən "unary" deyilir. Onlar bu adı ona görə aldılar ki, əvvəlkilərdən fərqli olaraq, onlar bir neçə deyil, bir nömrədə aparılır. Bunlara daxildir:-
Unary minus. Bu rəqəmin işarəsini tərsinə çevirir.
public class Main { public static void main(String[] args) { int x = 999; // change the sign for the first time x = -x; System.out.println(x); // change the sign a second time x= -x; System.out.println(x); } }
Konsol çıxışı:
-999 999
Unary minusdan iki dəfə istifadə etdik. Nəticədə sayımız əvvəlcə mənfi, sonra yenidən müsbət oldu!
-
Artırma (
++
) və azalma (--
)Əməliyyat
++
bir ədədi bir artırır və bir əməliyyat--
onu eyni vahidlə azaldır.public class Main { public static void main(String[] args) { int x = 999; x++; System.out.println(x); x--; System.out.println(x); } }
Konsol çıxışı:
1000 999
x++
- postfiks qeydi ++x
- prefiks notasiyası Rəqəmdən əvvəl və ya sonra müsbət və mənfi cəhətləri qoysanız, əsas fərq nədir? Bir misalda baxaq:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
}
}
Konsol çıxışı:
999
Səhv bir şey var! x
Biz 1 artırıb dəyişənə yeni dəyər təyin etmək istədik y
. Yəni y 1000-ə bərabər olmalıdır.Amma bizdə fərqli nəticə var - 999. Belə çıxır ki, artırılmayıb x
, artım əməliyyatı isə işə yaramayıb? Necə işlədi. Bunu yoxlamaq üçün sonunda konsola x çap etməyə çalışın :)
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
System.out.println(x);
}
}
Konsol çıxışı:
999
1000
Əslində, buna görə də postfiks əməliyyatı belə adlanır: o, əsas ifadədən sonra yerinə yetirilir. Yəni bizim vəziyyətimizdə: int y = x++;
əvvəlcə yerinə yetirilir y = x
(və y dəyişəninə ilkin dəyəri təyin olunacaq x
) və yalnız bundan sonra x++
.Bəs bu davranış bizi qane etmirsə? Prefiks qeydindən istifadə etməlisiniz:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = ++x;
System.out.println(y);
}
}
++x
Bu halda, ilk və yalnız bundan sonra işləyəcək.Bu y = x;
fərqi dərhal xatırlamağa dəyər ki, bütün davranışların buna görə alt-üst ola biləcəyi real proqramda səhv etməmək üçün :)
Qarışıq əməliyyatlar
Bundan əlavə, Java-da sözdə birləşdirilmiş əməliyyatlar var. Onlar iki əməliyyatın birləşməsindən istifadə edirlər:- Tapşırıq
- Arifmetik əməliyyat
+=
-=
*=
/=
%=
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
x += y;
System.out.println(x);
}
}
Konsol çıxışı:
1032
x += y
deməkdir x = x + y
. Qısalıq üçün ard-arda iki simvoldan istifadə olunur. -=
Bu , *=
, /=
və birləşmələri ilə də işləyir %=
.
Məntiqi əməliyyatlar
Nömrələr üzərində əməliyyatlara əlavə olaraq, Java həm də Boolean dəyişənləri üzərində əməliyyatlara malikdir -true
və false
. Bu əməliyyatlar məntiqi operatorlardan istifadə etməklə həyata keçirilir
-
!
— “NOT” operatoru. Boolean dəyişənin dəyərini dəyişdirirpublic class Main { public static void main(String[] args) { boolean x = true; System.out.println(!x); } }
Konsol çıxışı:
false
-
&&
— operator “AND”.true
Yalnız hər iki operand olduqda dəyər qaytarırtrue
.public class Main { public static void main(String[] args) { System.out.println(100 > 10 && 100 > 200); System.out.println(100 > 50 && 100 >= 100); } }
Konsol çıxışı:
false true
Результатом первой операции является
false
, поскольку одно из условий является ложным, а именно 100 > 200. Оператору&&
для того, чтобы вернутьtrue
требуется, чтобы истинными были все условия (How во второй строке, например). -
||
— оператор “ИЛИ”. returnstrue
, когда хотя бы один из операндов истинный.Здесь наш предыдущий пример уже отработает по-другому:
public class Main { public static void main(String[] args) { System.out.println(100 > 10 || 100 > 200); } }
Вывод в консоль:
true
Выражение 100 > 200 по-прежнему ложно, но оператору “or” вполне достаточно, что первая часть (100 > 10) является истинной.
GO TO FULL VERSION