Instrucţiunea CASE
Definiţie:
Instrucţiunea CASE este o instrucţiune alternativă
multiplă care permite selectarea unei instrucţiuni dintr-o listă de
instrucţiuni marcate, în funcţie de valoarea unui selector.
Instrucţiunea case are două forme:
Instrucţiunea case are două forme:
1)CASE expresie de tip ordinal OF
Listă de constante1: instrucţiune1;
Listă de constante2: instrucţiune2;
.......................................................
Listă de constanten: instrucţiunen;
end;
Listă de constante1: instrucţiune1;
Listă de constante2: instrucţiune2;
.......................................................
Listă de constanten: instrucţiunen;
end;
2)CASE expresie de tip ordinal OF
Listă de constante1: instrucţiune1;
Listă de constante2: instrucţiune2;
.......................................................
Listă de constanten: instrucţiunen
ELSE instrucţiune(n+1)
end;
Listă de constante1: instrucţiune1;
Listă de constante2: instrucţiune2;
.......................................................
Listă de constanten: instrucţiunen
ELSE instrucţiune(n+1)
end;
Atenţie: în
cazul folosirii acestei sintaxe, semnul " ; " (punct şi virgula)
inainte de "else" este strict interzis;
"instructiune1", "instructiune2" şi "instructiunen" sunt instrucţiuni Pascal.
"instructiune1", "instructiune2" şi "instructiunen" sunt instrucţiuni Pascal.
Principiul de execuţie:
·
se
evaluează expresia de tip ordinal (integer, char, Boolean,byte,word,longint,
sau definită de utilizator ca subdomeniu sau enumerare);
·
se obţine o valoare v care reprezintă valoarea
selectorului utilizată pentru selecţia uneia dintre alternative. Apoi se caută
în lista de constante, constanta egală cu valoarea evaluată. Dacă se localizează
această constantă într-una dintre liste, se execută instrucţiunea asociată
acestei liste;
·
dacă nu există nici o instrucţiune care să conţină
eticheta v, atunci dacă este prezent cuvîntul 'ELSE' se execută instrucţiunea
care urmează după aceasta,în caz contrar nu se execută instrucţiunea CASE şi se
trece la secvenţa imediat următoare.
Atenţie: Dacă secvenţele cuprind mai mult de 2
instrucţiuni,acestea trebuie cuprinse între BEGIN şi END;
Exemplu de program:
1. Acum,datorită instrucţiunii "case" putem împarţi persoanele în
categorii după vîrsta şi sex:
program
p10;
var varsta :integer;
sex :char;
begin
write ('Ce varsta aveti ? ');
readln (varsta);
write ('Sunteti baiat sau fata ? (M / F) : ');
var varsta :integer;
sex :char;
begin
write ('Ce varsta aveti ? ');
readln (varsta);
write ('Sunteti baiat sau fata ? (M / F) : ');
readln (sex);
Case sex Of
Case sex Of
'f','F'
: WriteLn ('Sex feminin');
'm','M'
: WriteLn ('Sex masculin');
Else
Writeln ('Sex necunoscut, probabil neutru');
End;
Case varsta Of
End;
Case varsta Of
0 .. 17
: WriteLn ('Persoana minora');
18 .. 60
: WriteLn ('Persoana majora');
61 ..
150 : WriteLn ('Persoana in varsta');
151 ..
maxint : WriteLn ('Personaj biblic');
-maxint
.. -1 : WriteLn ('Persoana care este inca in planuri de viitor');
End;
ReadLn;
End.
Structura Case, după cum am explicat anterior, permite ca pentru o anumită instrucţiune, să verificăm mai multe valori posibile. Aceste valori pot fi scrise una cîte una şi despărţite prin virgulă ('f','F')sau pot fi scrise ca un şir de valori, în care se oferă valoarea minimă şi apoi valoarea maximă, aceste două valori fiind despărţite prin " .. " (două puncte unul după celălalt: "18..60").
End;
ReadLn;
End.
Structura Case, după cum am explicat anterior, permite ca pentru o anumită instrucţiune, să verificăm mai multe valori posibile. Aceste valori pot fi scrise una cîte una şi despărţite prin virgulă ('f','F')sau pot fi scrise ca un şir de valori, în care se oferă valoarea minimă şi apoi valoarea maximă, aceste două valori fiind despărţite prin " .. " (două puncte unul după celălalt: "18..60").
Niciun comentariu:
Trimiteți un comentariu