probleme avec la commande goto en language C

Bonjour,
on remarquera juste que dans l'exemple donné par alf_zorro, le "goto" semble être utilisé pour géré les erreurs, ce qui reste une utilisation très restreinte.
Et que pour cela, un petit code C++ utiliserait les exceptions ... et alors au revoir les "goto" :)
Je rajouterais que les personnes qui ont été le noyau et les librairies POSIX étaient surement confronté à des problèmes de performances. Dans ce cas, le code généré par le compilateur est peut être meilleur en utilisant le "goto" plutôt que sans : il faudrait voir le code assembleur pour en être sur. Des amateurs pour essayé ? ;)

Pour ma part, je pense qu'on peut parfaitement s'en passer dans la vie de tous les jours (je programme en C/c++ depuis plus de 10 ans et je n'ai jamais mis de "goto" dans un de mes programmes) mais peut être que dans des cas très précis ???

PS : dans l'exemple de Ceroce, si le "for" doit être interrompu, alors peut être vaut-il mieux le remplacer par un "while" avec un test sur un flag, non ?
 
ntx a dit:
PS : dans l'exemple de Ceroce, si le "for" doit être interrompu, alors peut être vaut-il mieux le remplacer par un "while" avec un test sur un flag, non ?

Il faut faire ce qui te semble le plus lisible. Je ne crois pas qu'utiliser un while() soit une bonne solution; c'est bien une boucle for que tu souhaites faire, non ?

Pour se _passer_ du goto:


Bloc de code:
quitterBoucle = false;

for(compteur1 = 0; compteur1 <= 10000; compteur1++)
{
    for(compteur2 = 0; compteur2 <= 10000; compteur2++)
    {
         if(  condition   )
         {
             quitterBoucle = true; 
             break;
         }
    }

    if(quitterBoucle)
        break;
}

Je trouve ça plus lisible avec un goto, mais peut-être avez-vous une solution plus élégante à proposer ? ;)

Cordialement,
Céroce