goto
e istruzioni etichettate (C)
L'istruzione goto
trasferisce il controllo a un'etichetta. L'etichetta specificata deve risiedere nella stessa funzione e può apparire solo prima di un'istruzione nella stessa funzione.
Sintassi
statement
:
labeled-statement
jump-statement
jump-statement
:
goto
identifier
;
labeled-statement
:
identifier
:
statement
Un'etichetta dell'istruzione è significativa solo a un'istruzione goto
; in qualsiasi altro contesto, un'istruzione contrassegnata viene eseguita indipendentemente dall'etichetta.
Un jump-statement
deve risiedere nella stessa funzione e può essere visualizzato prima di una sola istruzione nella stessa funzione. Il set di identifier
nomi che segue a ha goto
uno spazio dei nomi specifico in modo che i nomi non interferiscano con altri identificatori. Le etichette non possono essere ridecredite. Per altre informazioni, vedere Spazi dei nomi.
È un buon stile di programmazione usare l'istruzione break
, continue
e return
in preferenza per goto
laddove possibile. Poiché l'istruzione break
esce solo da un livello del ciclo, può essere necessario un goto
valore per uscire da un ciclo dall'interno di un ciclo annidato in modo approfondito.
In questo esempio viene illustrata l'istruzione goto
:
// goto.c
#include <stdio.h>
int main()
{
int i, j;
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 3; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 5 )
goto stop;
}
}
/* This message does not print: */
printf_s( "Loop exited. i = %d\n", i );
stop: printf_s( "Jumped to stop. i = %d\n", i );
}
In questo esempio, un'istruzione goto
trasferisce il controllo per puntare stop
etichettate quando i
è uguale a 5.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per