Guida Pascal
Capitolo 16° - Le etichette e la procedure goto
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.
C#, TypeScript, java, php, EcmaScript (JavaScript), Spring, Hibernate, React, SASS/LESS, jade, python, scikit, node.js, redux, postgres, keras, kubernetes, docker, hexo, etc...
|