Oppure

Loading
Le etichette servono per separare uno spezzone di programma, che sarò usato solo in casi speciali. In pratica, una etichetta sarebbe come una procedura implementata direttamente nel programma principale, senza parametri o variabili interne. Vediamo un esempio:

Program Esempio7;
Uses Crt;
Var a,b:integer;
    label caso1,caso2;

begin
    clrscr;
    write(‘Inserisci un valore intero: ‘);
    read(a);
    if a>26 then
      goto caso1
    else
      goto caso2;
    
    caso1: begin
           write(‘Inserisci un altro valore intero: ‘);
      read(b);
      if b>90 then
        goto caso1
      else
        goto caso2;
           end;
    caso2: begin
      write(‘Inserisci un altro valore intero: ‘);
      read(a);
      if a<87 then
        goto caso1;
           end;
    readln
end.


Questo è un programma che non ha molto senso, ma illustra bene il costrutto goto. Analizziamo.
Innanzitutto, le label (cioè le etichette) vanno dichiarate nella parte relativa alle variabili, con la seguente sintassi:

label <nome1>,<nome2>,...,<nomeN>;

Una volta dichiarate, potranno essere usate. E’ importantissimo che le label si trovino nello stesso segmento di codice in cui si trova la procedura goto, poiché non si può balzare dentro altre procedure o funzioni.
La label si dichiara scrivendone il nome, seguito da un punto e virgola, dopo il quale si pone il codice da eseguire.
In sostanza il programma fa questo: se a, introdotto da tastiera, è maggiore di 26, salata alla label caso1, altrimenti alla label caso2; nella label caso1, se b, introdotto da tastiera è uguale a 90, ritorna indietro a ricomincia la stessa label, altrimenti, salta alla label caso2; nella label caso2, se a, introdotto da tastiera, è maggiore o uguale a 87, allora il programma termina, altrimenti salta alla label caso1.
A cura di: Il Totem