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