Арифметикалық амалдар
Ең қарапайым нәрседен - арифметикалық амалдардан бастайық. Бұл белгілі қосу (+ белгісі), азайту (-), көбейту (*) және бөлу (/).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);
}
}
Консоль шығысы:
1032
966
32967
30
Сіз мұның бәрін қолданып қойғансыз. Оларға операция қосуға болады %
- бөлімнің қалған бөлігі.
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 33%2;
System.out.println(y);
}
}
Консоль шығысы:
1
Бұл мысалда біз 33-ті 2-ге бөлеміз. Нәтижесінде біз 16-ны аламыз және 2-ге бөлінбейтін қосымша «құйрық» қалады - бір. Бұл «құйрық» «бөлінудің қалдығы» операциясының нәтижесі болады. Java (сонымен қатар математика) салыстыру операторларын жүзеге асырады . Сіз оларды мектептен де білетін шығарсыз:
- тең (
==
) - Көбірек (
>
) - Аздау (
<
) - үлкен немесе тең (
>=
) - кем немесе тең (
<=
) - тең емес (
!=
)
==
«Теңдіктер» операциясы бір таңбамен емес, түрінде жазылады =
. Java тіліндегі бірлік белгісі =
тағайындау операторы болып табылады, мұнда айнымалыға сан, жол немесе басқа айнымалының мәні тағайындалады.
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
}
}
Консоль шығысы:
999
Ой! Бұл біз күткен нәтиже емес екені анық. Бұл деректердің мүлдем басқа түрі: біз көреміз деп күткен едік boolean
, бірақ нөмір алдық. Себебі жақшаның ішінде бізде салыстыру емес, тағайындау операциясы бар. x=y
(999) мәні y
айнымалыға тағайындалды x
, содан кейін біз оны x
консольге басып шығардық. Дұрыс нұсқа:
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x==y);
}
}
Консоль шығысы:
false
Енді біз 2 санды дұрыс салыстырдық! :) Тағайындау операциясының ( =
) тағы бір ерекшелігі - оны «тізбектелген» орындауға болады:
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);
}
}
Консоль шығысы:
256
Есіңізде болсын: тапсырма оңнан солға қарай орындалады. Бұл өрнек ( x = y = z
) қадамдармен орындалады:
- y = z, яғни у = 256
- x = y, яғни x = 256
Бірыңғай операциялар
Олар «uno» - «бір» сөзінен «бірлік» деп аталады. Олар бұл атауды алды, өйткені бұрынғылардан айырмашылығы, олар бірнеше емес, бір нөмірде жүзеге асырылады. Оларға мыналар жатады:-
Бірыңғай минус. Ол санның таңбасын өзгертеді.
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); } }
Консоль шығысы:
-999 999
Біз унарлы минусты екі рет қолдандық. Нәтижесінде біздің сан алдымен теріс болды, содан кейін қайтадан оң болды!
-
Өсу (
++
) және азайту (--
)Операция
++
санды бір бірлікке арттырады, ал операция--
оны бір бірлікке азайтады.public class Main { public static void main(String[] args) { int x = 999; x++; System.out.println(x); x--; System.out.println(x); } }
Консоль шығысы:
1000 999
x++
- постфикс белгісі ++x
- префикс белгісі Санның алдына немесе соңынан плюс пен минустарды қойсаңыз, негізгі айырмашылығы неде? Мысалда көрейік:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
}
}
Консоль шығысы:
999
Бірдеңе дұрыс емес пе! Біз 1-ге көбейтіп x
, айнымалыға жаңа мән тағайындағымыз келді y
. Яғни, y 1000-ға тең болуы керек.Бірақ бізде басқа нәтиже бар - 999. Ол көбейтілмеді x
және өсу операциясы жұмыс істемеді? Бұл қалай жұмыс істеді. Мұны тексеру үшін соңында консольге x басып шығарып көріңіз :)
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
System.out.println(x);
}
}
Консоль шығысы:
999
1000
Шын мәнінде, постфикс операциясы осылай аталады: ол негізгі өрнектен кейін орындалады. Яғни, біздің жағдайда: int y = x++;
алдымен ол орындалады y = x
(және y айнымалысына бастапқы мән беріледі x
), содан кейін ғана x++
.Бұл мінез-құлық бізді қанағаттандырмаса ше? Префикс белгісін пайдалану керек:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = ++x;
System.out.println(y);
}
}
++x
Бұл жағдайда, ол алдымен және содан кейін ғана жұмыс істейді.Бұл y = x;
айырмашылықты бірден есте сақтау керек, бұл нақты бағдарламада қателіктер жібермеу үшін, соның салдарынан барлық мінез-құлық төңкерілуі мүмкін :)
Біріктірілген операциялар
Сонымен қатар, Java тілінде біріктірілген операциялар деп аталатындар бар. Олар екі операцияның комбинациясын пайдаланады:- Тапсырма
- Арифметикалық амал
+=
-=
*=
/=
%=
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
x += y;
System.out.println(x);
}
}
Консоль шығысы:
1032
x += y
білдіреді x = x + y
. Қысқа болу үшін қатардағы екі таңба қолданылады. -=
Бұл сонымен қатар , *=
, /=
және комбинацияларымен жұмыс істейді %=
.
Логикалық операциялар
Сандармен операциялардан басқа, Java-да логикалық айнымалылар -true
және false
. Бұл операциялар логикалық операторлар арқылы орындалады
-
!
— «NOT» операторы. Логикалық айнымалының мәнін өзгертедіpublic class Main { public static void main(String[] args) { boolean x = true; System.out.println(!x); } }
Консоль шығысы:
false
-
&&
— «AND» операторы.true
Екі операнд да болса ғана мәнді қайтарадыtrue
.public class Main { public static void main(String[] args) { System.out.println(100 > 10 && 100 > 200); System.out.println(100 > 50 && 100 >= 100); } }
Консоль шығысы:
false true
Бірінші әрекеттің нәтижесі болып табылады
false
, себебі шарттардың бірі жалған, атап айтқанда 100 > 200. Оператор&&
қайтару үшінtrue
барлық шарттардың ақиқат болуын талап етеді (мысалы, екінші жолдағы сияқты) . -
||
— «OR» операторы.true
Операндтардың кем дегенде біреуі ақиқат болғанда қайтарады .Мұнда біздің алдыңғы мысал басқаша жұмыс істейді:
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