Seuraavissa tapauksissa goto- lause voidaan hyväksyä:
1. silmukan suorituksen katkaisu 2. aliohjelman loppuun hyppääminen (silloin kun returnia ei lopetustoimenpiteiden vuoksi voida käyttää) 3. jos strukturoitu rakenne on selvästi monimutkaisempiMikäli yhteen aliohjelmaan tulee useita goto - lauseita, on rakenne selvästikin suunniteltu väärin, ja se on mietittävä uudelleen.
goto - lauseen syntaksiin kuuluu paikan nimi, johon hypätään. Tämä nimiö täytyy esitellä ohjelmassa laittamalla se tarvittavaan kohtaan:
#include <stdio.h>
int main(void)
{
int summa=0,luku;
printf("Anna lukuja. Summaan niitä kunnes annat 0 tai summa > 20\n");
while (summa <= 20) {
printf("Anna luku>");
if ( !scanf("%d",&luku) ) goto luvut_loppu;
if ( luku == 0 ) goto luvut_loppu;
summa += luku;
}
luvut_loppu:
printf("Lukujen summa on %d.\n",summa);
return 0;
}
Siis break ja continue ovat "piilotettuja" goto-
lauseita. Mikäli break tai continue pitäisi saada
toimimaan 2 tasoa ulospäin, on pakko käyttää goto-
lausetta.Huom! Ensisijaisesti pyri välttämään goto- lauseita!