IF tanlash operatorini o‘rganishni davom ettiramiz, bu operatorni asosiy bajaradigan vazifasi bilan tanishib chiqdik, bu maqolada, tanlash operatori bilan mantiqiy operatorlarni birga ishlatishni ko‘rib chiqamiz. Undan tashqari «IF» konstruktorini boshqa sintaksisilarini ham ishlatib ko‘ramiz.

Mantiqiy operatorlarni tanlash operatori bilan birga ishlatish, kodlarni ancha qisqartiradi va ma’noli kod yozishga olib keladi. Misol olaylik, berilgan son musbat va juftligini aniqlovchi dasturni mantiqiy operatorlarsiz yozamiz.

class test{
public static void main(String[] args){
    int a= 26;
    if(a>0)
    {
     if(a%2==0)
     {
        System.out.println("OK");
     }
    }
    else
        System.out.println("No");
}
}

Dastlab, berilgan son musbatligi tekshirilmoqda, so‘ng uning juft toqligi. Agar hamma shart qanoatlantirsa «OK» degan yozuv, aks holda «NO» ekranga chiqishi lozim(Natija: OK).

Endi, bu misolni mantiqiy «AND» operatori orqali yechamiz.

class test{
public static void main(String[] args){
    int a= 26;
    if(a>0 && a%2==0)
    {
     System.out.println("OK");
    }
    else
        System.out.println("No");
}

Agar bir vaqtning o‘zida berilan son ham musbat, ham juft bo‘lsa, «OK» yozuv chiqadi.

&& belgisi, bir vaqtning o‘zida ikkala hol ham(a>0, a%2) rost(true) bo‘lsa, umumiy shart rost bo‘lishini ta’minlaydi. Agar son musbat bo‘lib, lekin juft bo‘lmasa, natija yolg‘on bo‘ladi va «NO» degan yozuv ekranga chiqadi.

Ko‘rib turganingizdek, dasturda bitta «if» operatori kamaydi va dastur tushunarli holga keldi.

Yana bir mantiqiy operator YOKI(||)ni ishlatib ko‘ramiz. Oldingi misolni faqat shartini o‘zgartiramiz.

class test{
public static void main(String[] args){
    int a= -5;
    if(a>0 || a>=-5)
    {
     System.out.println("OK");
    }
    else
        System.out.println("No");
}
}

Shartga e’tibor bering, agar berilgan son musbat bo‘lsa(a>0) YOKI -5 soniga teng yoki undan katta bo‘lsa, «OK» yozuvi ekranga chiqsin. Bunda ikkita shartdan biri rost bo‘lsa, umumiy shart rost bo‘ladi va dastlabki blok(5-7) ishga tushadi. Bu shartni yana cho‘zish mumkin:

if(a>0 || a>=-5 || a==0)

Mantiqiy operatorlar, matematik ishoralar va tanlash operatorlarini istalgancha kombinatsiya qilish mumkin, bu ishlab chiqilgan algoritm asosida amalga oshiriladi. Qanday tartibda bo‘lishini ko‘rsatib o‘tdim, bularni ichiga qavslarni, inkor operatorini, teng emas belgisini ham kiritish mumkin, bular endi fikrlashga qarab amalga oshirilaveradi.

IF tanlash operatorini «if else» sintaksisidan boshqa, «else if» sintaksisi ham mavjud. Agar shart yolg‘on bo‘lsa, yana boshqa shart tekshiriladi toki oxirgi «else«(If siz else) operatori chiqmaguncha, agar «else» chiqmasa, dastur hech qanday amal bajarmaydi. Misol ko‘ramiz,

class test{
public static void main(String[] args){
int month = 4;
String fasl="";
if(month == 1 || month == 2 || month == 12)
    fasl = "Qish";
else if (month == 3 || month == 4 || month == 5)
    fasl = "Bahor";
else if (month == 6 || month == 7 || month == 8)
    fasl = "Yoz";
else if (month == 9 || month == 10 || month == 11)
    fasl = "Kuz";
else
    fasl = "Bunday fasl mavjud emas";
    System.out.println(fasl);
                }
}

Kiritilgan oy qaysi faslga to‘g‘ri kelganligi tekshirilib, ekranga fasl nomi chiqariladi, agar bunday oy bo‘lmasa «Bunday fasl mavjud emas» degan yozuv chiqadi(Natija: Bahor).

Agar oxirgi «else»(13 chi qator) bo‘lmasa va noto‘g‘ri son berilgan bo‘lsa(12 sonidan katta yoki kichik), ekranga hech narsa chiqmaydi(bo‘sh belgi chiqadi xolos), bu dasturni boshqarish (qaysi operator ishlaganini yoki umuman ishlamaganligini bilish uchun) imkonini beradi.

Shuning uchun «else if» sintaksisini dasturlarda ishlatganda, «if«siz «else» operatori mavjud bo‘lishi lozim.

Odatda, dasturlash bo‘yicha tajribaga ega dasturchilar, «if else» operatorlari o‘rniga «?» belgisidan foydalanib, kodni qisqartirishadi. Bu biroz noqulayroq(tushunarsiz) ko‘rinishga ega bo‘ladi. «if else» sintaksisiga misol ko‘ramiz

class test{
public static void main(String[] args){
int son1=10;
int son2=20;
int natija;
if (son1>son2)
    natija = son1;
else
    natija = son2;
}

}

Misol oddiy, agar birinchi son katta bo‘lsa, «natija» nomli o‘zgaruvchi shu sonni qiymatini oladi, agar kichik bo‘lsa, «natija» nomli o‘zgaruvchi ikkinchi sonni qiymatini oladi.

Shu misolni «?» belgisi orqali yozamiz.

class test{
public static void main(String[] args){
int son1=10;
int son2=20;
int natija = son1>son2 ? son1: son2;
}
}

«?» belgisidan oldingi shart tekshiriladi, agar rost bo‘lsa chap tomondan birinchi o‘zgaruvchi(son1), yolg‘on bo‘lsa o‘ng tomondagi o‘zgaruvchi(son2) «natija» o‘zgaruvchisiga beriladi.

Bunday shartni tekshirish biroz noqulayroq ko‘rinishga ega.

Shu bilan «IF» tanlash operatorigi oid maqolalar tugadi. Navbat «Switch» ga.