Instrucţiunea CASE


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:                          
1)CASE expresie de tip ordinal OF
    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;
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.

                       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) : ');
  readln (sex);
  Case sex Of
'f','F' : WriteLn ('Sex feminin');
'm','M' : WriteLn ('Sex masculin');
Else Writeln ('Sex necunoscut, probabil neutru');
  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"). 

Niciun comentariu:

Trimiteți un comentariu