Bundan oldin operatorlar bo’yicha tanishib o’tgan edik. Keling endi yanada ko’proq ma’lumotga ega bo’lamiz va murakkabroq misollarni ko’rib o’tamiz. Arifmetik operatorlarning siz uchun hech qanday tushunarsiz joyi bo’lmasa kerak.
Mantiqiy operatorlar avval ham aytib o’tib ketganimdek, ular asosan mantiqiy amallar kabi ishlaydi va buni yaxshi bilib olish siz uchun keyinchalik kod yozishdagi xatolaringizni oldi olinishga yordam beradi.
Mantiqiy operatorlar quyidagi mantiqiy amallar vazifasini bajaradi va bularning har biri uchun rostlik jadvali, ustunlik darajasi mavjud.
Ikki yoki undan ortiq shartlar ishlatilganda ularni bir-biri bilan bog’lash uchun ushbu operatorlardan foydalaniladi. Har biri uchun rostlik jadvali berib o’tildi quyida. 0 (false) va 1 (true)
Konyunksiya (And)
Dizyunksiya (Or)
Inkor (Not)
Endi misollarga o’taylik,
void main() {
int a = 5, b = 7, c = 2;
bool natija = !(a % 2 == 0) || b - 8 < 0 && c > 0;
print(natija);
}
Kodda berilgan natija = !(a % 2 == 0) || b - 8 < 0 && c > 0; ushbu ifodani tahlil qilamiz.
- a % 2 == 0 – sonning juft sonligi tekshirilmoqda, natija esa yolg’on (false). Uning inkori jadvaldan qarasak, 1 (true) ga tengdir. Qoldiq 1 chiqmoqda u esa 0 ga teng emas.
- b - 8 < 0 – b ning qiymati 7 ga teng edi. Undan 8 ni ayirsak, -1 chiqadi va u 0 dan kichik rost (true) chiqmoqda.
- Hozircha ikkala chiqqan mantiqiy qiymatlarga dizyunksiya amalini qo’llashimiz kerak. true || true = 1 || 1 = 1 jadval bo’yicha.
- c > 0 – c musbat sonligi tekshirilmoqda. Rostdan ham shunday va oxiri konyunksiya amaliga yetib kelamiz. true && true = 1 && 1 = 1 so’nggi ifodadan chiquvchi mantiqiy qiymat.
Mantiqiy operatorlar uchun asosan mantiqiy qiymatlar zarur ularni esa biz asosiy taqqoslash operatorlaridan foydalanib yarata olamiz. Hozirgi ifodada ishlatilgani kabi.
Tayinlash operatorlari = tenglik tashqari, qolgan barchasi bitli, arifmetik operatorlardan kelib chiqadi. Ya’ni ularning qisqartma shaklidir. Nega bunday ? To’liq shaklini ko’rib o’tsak :
Bu kabi ko’rinishda esa sizga yanada tushunarli bo’lsa kerak. Ikki son yig’indisini topish uchun demak, men quyidagi ikki usuldan birini qo’llashim mumkin ekan :
void main() {
int a = 5, b = 7;
a += b;
print(a);
}
void main() {
int a = 5, b = 7;
a = a + b;
print(a);
}
Sonning butun hamda kasr qismlarini qanday ajrata olamiz. Buning uchun arifmetik operatorlar ishlatilishi yetarli. Bu matematikada mana bu tarzda ifodalanar edi : x = [x] + {x}
void main() {
double son = 5.6;
double kasr = son % 1, butun = son - kasr;
print("$son = [$butun] + {$kasr}");
}
Kompyuter kasr sonlar bilan ishlagan vaqtda biz bilgandek to’g’ri aniqlikda ishlamaydi.