Inform e Glulx/Le basi di Inform/Salti ed etichette

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

Salti ed etichette[modifica]

In 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]

  1. Cliccate qui per scaricare il listato di questo esercizio (il file 3.13.inf).