int main(void)
{
if (!machin())
goto err;
// Blabla
if (!truc())
goto err;
// Blabla
if (!bidule())
goto err;
printf("Ca marche !\n");
return 0;
err:
printf("Oups !\n");
return -1;
}
On ne va pas troller sur le goto ... mais dans les langages récents les exceptions sont utilisées pour faire ce genre de choses
Le goto sert juste à revenir au niveau ASM dans le cadre d'optimisation d'un programme ... dans la plupart des cas les instructions ifThenElse/for/while reviennent au même, la clarté et facilité de compréhension en plus ! Dans des cas très précis le goto peut être utilisé, mais c'est vraiment des cas très rare. Du coup, je pense sincèrement que ne jamais programmer en utilisant des goto (je vous jure qu'on peut y arriver ! ) est une très bonne habitude qui aboutit dans 99% des cas à un code plus propre et maintenable ...
Ici par exemple pour un traitement des erreurs propres et sans utiliser les exceptions, on pourrait faire :
int main(void)
{
if (!machin())
goto err;
// Blabla
if (!truc())
goto err;
// Blabla
if (!bidule())
goto err;
printf("Ca marche !\n");
return 0;
err:
printf("Oups !\n");
return -1;
}
On ne va pas troller sur le goto ... mais dans les langages récents les exceptions sont utilisées pour faire ce genre de choses
Le goto sert juste à revenir au niveau ASM dans le cadre d'optimisation d'un programme ... dans la plupart des cas les instructions ifThenElse/for/while reviennent au même, la clarté et facilité de compréhension en plus ! Dans des cas très précis le goto peut être utilisé, mais c'est vraiment des cas très rare. Du coup, je pense sincèrement que ne jamais programmer en utilisant des goto (je vous jure qu'on peut y arriver ! ) est une très bonne habitude qui aboutit dans 99% des cas à un code plus propre et maintenable ...
Ici par exemple pour un traitement des erreurs propres et sans utiliser les exceptions, on pourrait faire :
Utilisés très peu : - C et C++ - VB et VB.Net (pour les DLL) - Java (Pour Android) - ASM (pour désassembler) - Python (quand je m'ennuie) - et quelques autres....