Арифметикалык амалдар
Эң жөнөкөй нерседен баштайлы – арифметикалык амалдар менен. Бул белгилүү кошуу (+ белгиси), кемитүү (-), көбөйтүү (*) жана бөлүү (/).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
Мааниси y
(999) өзгөрмөгө дайындалган 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
- х = у, башкача айтканда х = 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
. Бул операциялар логикалык операторлордун жардамы менен аткарылат
-
!
— «ЭМЕС» оператору. Логикалык өзгөрмөнүн маанисин өзгөртөтpublic class Main { public static void main(String[] args) { boolean x = true; System.out.println(!x); } }
Консолдук чыгаруу:
false
-
&&
— оператор "ЖАНА".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
бардык шарттардын чын болушун талап кылат (мисалы, экинчи саптагыдай) . -
||
— «ЖЕ» оператору.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