CASE <танлов_калити> OF <танлов_рўйхати> [ELSE<операторлар>]END.
Бу ерда CASE, OF, ELSE, END - резерв сўзлар (ћол, [ун]дан, акс ћолда, тамом);
<танлов_калити> - танлов калити;
<танлов_рўйхати> - бир ёки бир нечта ќуйидаги кўринишдаги конструкция;
<танлов_ўзгармаси> : <оператор>;
<танлов_ўзгармас> - <танлов калити> ифодаси тури билан бир хил бўлган ўзгармас;
<операторлар> - Турбо Паскалнинг ихтиёрий операторлари.
Танлов оператори ќуйидагича ишлайди:
Аввал <танлов_калити> ифодасининг ќиймати ћисобланади, кейин <танлов_рўйхати> операторлари кетма-кетлигидан, олдида ћисобланган ќийматга тенг бўлган ўзгармас ёзилган оператор изланади. Топилган оператор бажарилади ва танлов оператори ўз ишини тугатади. Агар танлов рўйхатида ћисобланган ќийматга тенг ўзгармас топилмаса, бошќариш ELSE сўзидан кейинги операторга узатилади. ELSE <оператор> ќисмини ташлаб юбориш мумкин. Унда рўйхатдан керакли ўзгармас топилмагач, ћеч нарса содир бўлмайди, танлов оператори ўз ишини тугатади.
Ќуйида CASE оператори ишлатилишига мисол ќилиб дастурлар келтирамиз:
8.5.-дастур
Program Tanlash
var
x,y:real; ch:char;
begin
Readln (x,y);
case ch of
#72: y:=y-1;
#80: y:=y+1;
#75: x:=x-1;
#77: x:=x+1
end
end.
Танлов рўйхатидаги операторлдардан ихтиёрийсига бир эмас, балки бир нечта, бир-биридан вергул билан ажратилган, танлов ўзгармаслари тўѓри келиши мумкин. масалан, ќуйидаги дастур белгилардан бири киритилганда (у ёки У) «Ћа» ёки (n ёки N) «Йўќ» сўзларини экранга чиќаради:
8.6.-дастур
var
ch:char;
begin
Readln (ch);
Case ch of
`n`, `N`:writeln (`Йўќ`);
`y`, `Y`:writeln (`Ћа`)
end
end.
8.7-дастур
var
Symbol:char;
begin
case Symbol of
`0` … `9`: writeln (`Бу раќам`);
`a` … `z`: writeln (`Бу кичик ћарфлар`);
`A` … `Z`:writeln (`Бу бош ћарфлар`);
#10, #13, #26:writeln (`Бу бошќарувчи белги`)
Do'stlaringiz bilan baham: |