Ripeto comunque la necessità che kicco mostri il codice (o una riproduzione essenziale delle routine e dei comandi fondamentali del codice originario), giacché - diversamente - alla sua domanda sulla eventuale esistenza di un "
comando unico", se posta con finalità didattica, la soluzione di
cogier può essere soddisfacente.
Sappiamo, però, che i cicli posseggono soluzioni proprie, "condizionali", previste appunto per soddisfare la richiesta di uscita; e di norma andrebbero usate quelle.
Infatti in un programma
grafico l'uscita dal ciclo, effettuata mediante le previste modalità "
condizionali" e causata dalla chiusura arbitraria della finestra principale del programma, non pregiudica in via generale il termine del programma medesimo, rendendo così inutile ed eccessivo l'uso dell'istruzione "Quit":
Private b As Byte
Public Sub Form_Open()
Me.Show
Ciclo()
End
Private Procedure Ciclo()
Repeat
Inc b
Print b
Wait 0.3
Until b == 100
End
Public Sub Form_Close() ' Chiudendo il Form, si scatena questo Evento
b = 100
End
In vero, l'uso di "
Return", già proposto da
cogier, risulta necessario, qualora dopo il ciclo vi siano altre righe di comando che in caso di uscita arbitraria dal ciclo, ottenuta con la chiusura forzata del Form, si intenda
non far processare (quindi da saltare).
Ciò conferma che l'uso dell'istruzione "Return" determina, non solo - nel caso di specie - l'uscita dal ciclo, ma anche l'abbandono immediato e
definitivo della sub-routine, ove essa è posta.
A tal riguardo si provino i seguenti codici.
Senza "Return" nel ciclo:
Private b As Byte
Public Sub Form_Open()
Me.Show
Ciclo()
End
Private Procedure Ciclo()
Repeat
Inc b
Print b
Wait 0.3
Until b == 100
Print "Riga di comando successiva al ciclo"
End
Public Sub Form_Close()
b = 100
End
Con "Return" nel ciclo per l'uscita immediata e definitiva dalla sub-routine:
Private b As Byte
Public Sub Form_Open()
Me.Show
Ciclo()
End
Private Procedure Ciclo()
Repeat
Inc b
Print b
If b > 100 Then Return
Wait 0.3
Until b == 100
Print "Riga di comando successiva al ciclo"
End
Public Sub Form_Close()
b = 200
End