Inform e Glulx/Le basi di Inform/Salti ed etichette
Salti ed etichette
modificaIn Inform, esiste anche l’istruzione jump
in grado di controllare l’esecuzione del programma, come accade nel seguente esempio:
! Esempio sull'utilizzo dell'istruzione JUMP
Include "Parser"; Include "VerbLib"; Include "Replace";
Constant TENTATIVI 5;
[ Funz_princip; ClearScreen(); ! pulisce lo schermo Domanda(); print "^Premi un tasto per uscire^"; KeyCharPrimitive(); ! legge un carattere dalla tastiera ];
[ Domanda x count; count = 0; .Inizio; print "^Ogni quanti anni compare la cometa di Halley? "; x = GetNumber(2); if (x == 76) { print "La risposta @`e esatta!!!^"; count = TENTATIVI; } else print "Spiacente, la risposta non @`e esatta...^"; count++; if (count < TENTATIVI) jump Inizio; ];
[ Initialise; Funz_princip(); quit; ! fine del programma ];
Include "Io"; Include "ItalianG";
L’istruzione .Inizio;
è un’etichetta (in inglese label) alla quale l’istruzione jump
fa sempre riferimento. Alla fine della funzione Domanda
, l’istruzione if (count < TENTATIVI) jump Inizio;
dice al compilatore: se il valore contenuto nella variabile count
è minore del valore della costante tentativi
, vai all’etichetta Inizio
, altrimenti prosegui.
In questo modo abbiamo simulato un ciclo do-until
, ovviamente a scopo puramente didattico e dimostrativo; non ha alcun senso, infatti, simulare qualcosa che esiste già. Questo stratagemma veniva utilizzato moltissimo con alcuni vecchi Basic degli anni ’80, che di fatto non avevano i cicli while
e do... until
e dovevano in qualche modo "arrangiarsi".
È bene comunque sapere che Inform mette a disposizione anche questa possibilità, perché, in alcune funzioni particolarmente complesse, potrebbe rivelarsi una valida scappatoia[1].
Note
modifica