Loading...

Шарттуу конструкциялар

Көптөгөн программалоо тилдеринин негизги элементтеринин бири шарттуу конструкциялар болуп саналат. Бул конструкциялар белгилүү бир шарттарга жараша программанын ишин жолдордун бири боюнча багыттоого мүмкүндүк берет.

 

Java тили төмөнкү шарттуу конструкцияларды колдонот: if..else жана switch..case

 

if/else конструкциясы

if/else туюнтмасы белгилүү бир шарттын чындыгын текшерет жана текшерүүнүн жыйынтыгына жараша белгилүү бир кодду аткарат:

 

int num1 = 6;

int num2 = 4;

if(num1>num2){

    System.out.println("Биринчи сан экинчиден чоңураак");

}

if ачкыч сөзүнөн кийин шарт келет. Ал эми бул шарт аткарылса, анда тармал(фигурный) кашаалардан кийин if блогуна андан ары жайгаштырылган код иштейт. Шарт - эки санды салыштыруу операциясы.

 

Бул учурда биринчи сан экинчиден чоң болгондуктан, num1 > num2 туюнтмасы чындык жана чындыкты кайтарат. Демек, башкаруу тармал(фигурный) кашаалардан кийин код блогуна өтөт жана анда камтылган көрсөтмөлөрдү, тактап айтканда System.out.println("Биринчи сан экинчиден чоңураак"); ыкмасын аткара баштайт. Эгерде биринчи сан экинчиден кичине же барабар болсо, анда if блогундагы операторлор аткарылбайт.

Ал эми шарт аткарылбаса, бир нерсе жасалышын кааласакчы? Бул учурда, биз else блогун кошо алабыз:

int num1 = 6;

int num2 = 4;

if(num1>num2){

    System.out.println("Биринчи сан экинчиден чоңураак ");

}

else{

    System.out.println("Биринчи сан экинчиден кичинераак ");

}

Бирок сандарды салыштырганда үч абалды санай алабыз: биринчи сан экинчиден чоң, биринчи сан экинчиден кичине, сандар бирдей. else if билдирүүсү менен биз кошумча шарттарды аткара алабыз:

int num1 = 6;

int num2 = 8;

if(num1>num2){

    System.out.println("Биринчи сан экинчисинен чоңураак ");

}

else if(num1<num2){

    System.out.println("Биринчи сан экинчисинен кичинераак ");

}

else{

    System.out.println("Сандар бирдей");

}

 

Логикалык операторлор аркылуу бир эле учурда бир нече шарттарды туташтыра алабыз:

 

int num1 = 8;

int num2 = 6;

if(num1 > num2 && num1>7){

    System.out.println("Биринчи сан экинчиден чоң жана 7ден чоң");

}

 

Бул жерде if блогу аткарылат, эгерде num1 > num2 чын болсо жана ошол эле учурда num1>7 чын болсо.

 

Switch/case

Switch/case конструкциясы if/else конструкциясына окшош, анткени ал бир эле учурда бир нече шарттарды иштетүүгө мүмкүндүк берет:

 

int num = 8;

switch(num){

            

    case 1:

        System.out.println("1ге барабар");

        break;

    case 8:

        System.out.println("8ге барабар ");

        num++;

        break;

    case 9:

        System.out.println("9га барабар ");

        break;

    default:

        System.out.println("1, 8, 9 ге барабар ");

}

Switch ачкыч сөзүнөн кийин кашаанын ичиндеги салыштыруу туюнтмасы келет. Бул туюнтумдун мааниси ырааттуу түрдө case билдирүүлөрдөн кийин коюлган баалуулуктар менен салыштырылат. Ал эми дал келүү табылса, анда тиешелүү иш блогу аткарылат.

 

Башка блоктордун аткарылышын болтурбоо үчүн иш блогунун аягында break оператору жайгаштырылат. Мисалы, эгерде break оператору төмөнкү учурда алынып салынса:

case 8:

    System.out.println("8ге барабар ");

    num++;

case 9:

    System.out.println("9га барабар ");

    break;

анда 8 иш аткарылат (анткени саны 8). Бирок бул блокто break оператору жок болгондуктан, 9-кап блоку аткарыла баштайт.

 

Эгерде биз да дал келбеген жагдайды чечүүнү кааласак, анда биз жогорудагы мисалдагыдай демейки блокту кошо алабыз. Демейки блок кошумча болсо да.

 

Биз ошондой эле бир эле учурда бир нече иш блоктору үчүн бир аракетти аныктай алабыз:

int num = 3;

int output = 0;

switch(num){

    

    case 1:

        output = 3;

        break;

    case 2:

    case 3:

    case 4:

        output = 6;

        break;

    case 5:

        output = 12;

        break;

    default:

        output = 24;

}

System.out.println(output);

 

Тернардык операция

Тернардык операция төмөнкү синтаксиске ээ: [биринчи операнд - шарт] ? [экинчи операнд] : [үчүнчү операнд]. Ошентип, бул операцияга бир эле учурда үч операнд катышат. Шартка жараша үчтүк операция экинчи же үчүнчү операндды кайтарат: эгерде шарт чын болсо, анда экинчи операнд кайтарылат; шарт туура эмес болсо, анда үчүнчү. Мисалы:

int x=3;

int y=2;

int z = x<y? (x+y) : (x-y);

System.out.println(z);

 

Бул жерде тернардык операциянын натыйжасы өзгөрмө z болуп саналат. Биринчиден, x<y шарты текшерилет. Ал эми байкалса, анда z экинчи операндга - (х + у) барабар болот, антпесе z үчүнчү операндга барабар болот.