3-маъруза шартли операторлари


Download 308.29 Kb.
bet2/2
Sana19.06.2023
Hajmi308.29 Kb.
#1608212
1   2
Bog'liq
3.uz

Switch оператори
Switch оператори бир нечта ифоданинг қийматини текшириш имконини беради. C# да switch оператори билан текшириладиган ифода бутун сон, белги ёки матн қийматини қайтариши мумкин. Таққослаш оператори қуйидагича тавсифланади. Аввал switch калит сўзи, кейин эса қавс ичида текшириладиган ифода кўрсатилади. Таққослаш натижасига мос келадиган қийматлар эса case калит сўзи билан ёзилиб, агар натижа шу қийматга мос келса, шу қийматга тегишли операциялар бажарилади. Бу операциялар фигурали қавс ичида келтирилади. Ҳар бир case блоки бреак баёноти билан тугайдиган буйруқлар тўпламини ўз ичига олади. Case блокларидаги бошқарув қийматлари switch баёнотидаги ифода қиймати билан таққосланади. Агар мослик топилса, у ҳолда тегишли блокдаги буйруқлар бажарилади, агар мос келмаса, switch операторида стандарт блок кўрсатилиши мумкин. Қуйида учта case блокли switch операторини тавсифлаш учун умумий шаблон келтирилган:

switch(ифода) {


case қиймат_1:


// Буйруқлар
break;

case қиймат_2:


// Буйруқлар
break;

case қиймат_2:


// Буйруқлар
break;

default:
// Буйруқлар


break;
}

default блоки ихтиёрий - уни бутунлай ташлаб юбориш мумкин. 3.6-расмда switch оператори қандай бажарилиши тасвирланган диаграмма келтирилган.


Шундай қилиб, танлаш операторини бажаришда биринчи навбатда switch операторидаги ифоданинг қиймати баҳоланади. Олинган қиймат кетма-кет тарзда case блокларидаги назорат қийматлари билан таққосланади. Биринчи мосликда break операторигача бўлган барча буйруқлар бажарилади. Агар мослик топилмаса ва танлаш кўрсатмаларида default блок мавжуд бўлса, у ҳолда бу блокдаги буйруқлар бажарилади. Ҳеч қандай мослик топилмаса ва танлаш баёнотида default блок бўлмаса, ҳеч нарса содир бўлмайди.

3.6-расм. Баёнотнинг бажарилишини танлаш

3.5-Листинг. Танлаш оператор билан танишиш


using Microsoft.VisualBasic;


using System;
using System.Windows.Forms;
class SwitchCemo
{
static void Main()
{
// Киритилган рақамни ёзиш учун ўзгарувчи:
int number;

// Рақамни ёзувда ёзиш учун ўзгарувчи:


string name;

// рақамни ҳисоблаш:


number = Int32.Parse(
Interaction.InputBox(
// Киритиш ойнасидаги матн:
"Введите число:",
// Ойна номи:
"Число")
);

// Оператордан фойдаланиб, киритилган рақамнинг


// номини аниқлаш:

switch (number)


{
case 1: // Агар рақам 1 бўлса
name = "Единица"; // Рақам номи
break; // Блокни якунлаш

case 2: // Агар рақам 2 бўлса


name = "Двойка"; // Рақам номи
break; // Блокни якунлаш

case 3: // Агар рақам 3 бўлса


name = "Тройка"; // Рақам номи
break; // Блокни якунлаш

case 4: // Агар рақам 4 бўлса


name = "Четверка"; // Рақам номи
break; // Блокни якунлаш

default:
// хабар матни:


name = "Неизвестнсе число";
break; // Блокни якунлаш

} // Операторни якунлаш


// Хабарни чиқариш:


MessageBox.Show(name, "Число");
}
}

Бу ерда биз switch операторидан фойдаланамиз. Бутун сонли ўзгарувчи фойдаланувчи киритган рақамни сақлаш учун мўлжалланган. Матн ўзгарувчиси эса рақам номини сақлаш учун керак. Рақамни ўқиш учун Interaction класининг статик InputBox() функциясидан фойдаланамиз. Соннинг матнли тасвирини бутун сонга айлантириш учун Int32 структурасидан Parse() статик функциясидан фойдаланилади. Натижа number номли рақамли ўзгарувчига ёзилади.


number ўзгарувчисининг қийматини текширишда танлаш операторидан фойдаланилади. Бунда таққосланадиган ифода айнан number ўзгарувчиси ҳисобланади. case блокларда эса таққосланадиган қийматлар келтирилган (юқоридаги дастурда 4 та қиймат учун 4 та case блокдан фойдаланилган). Қайси case блокида таққосланадиган ифода number ҳамда таққосланадиган қиймат ўртасида мослик аниқланса, ўша блокдаги команда бажарилади. Яъни name ўзгарувчисига ўша блокдаги қиймат ёзилади. Агар солиштиришларнинг бирортасида ҳам мослик топилмаса, default блокидаги командалар бажарилади. Ушбу мисолда default блокида name ўзгарувчисига “Неизвестнсе число” матни ўзлаштирилади.


Шундай қилиб, мослик борми ёки ёъқми, ўзгарувчи номи қийматни олади. Бу қиймат Messagebox.Show (name, "Число") буйруғида қўлланилади, унда (рақамнинг номи ёки рақам номаълумлиги ҳақидаги хабар) бўлган диалог ойнаси кўрсатилади.



3.7-расм. 2 рақами киритилган кириш майдонига эга ойна.


Киришни тасдиқлаганингиздан сўнг, 3.8-расмда кўрсатилганидек, янги диалог ойнаси пайдо бўлади.



3.8-расм. 2 рақамини киритгандан сўнг хабар ойнаси

3.9-расмда фойдаланувчи 5 рақамини киритган кириш майдонига эга ойна кўрсатилган.



3.9-расм. Майдонга 5 рақами киритилади

OK тугмасини босгандан сўнг, бу ҳақда “Неизвестное число” хабар билан ойна пайдо бўлади.



3.10-расм. 5 рақамини киритгандан сўнг хабар ойнаси

Шуни таъкидлаш керакки, агар фойдаланувчи майдонга эга бўлган майдонга рақам киритиш ўрнига, масалан, Бекор қилиш тугмасини босган бўлса, унда хатолик юзага келади.




Назорат саволлари



  1. if() { } else{ } операторини мисол ёрдамида тушунтиринг

  2. if() { } else if{ } операторини мисол ёрдамида тушунтиринг

  3. switch() case{ } операторини мисол ёрдамида тушунтиринг

Download 308.29 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling