google ads

Un problème informatique? Une question? Bref tout ce qui a un rapport avec l'informatique, les virus, les questions d'utilisation de logiciels...

Modérateurs : Naveed, GregLand

real34
Messages : 1030
Enregistré le : 01 janv. 2004 18:51
Langage de programmation connu : PHP, SQL, CSS, xHTML, Javascript, Java, JSF, ASP.NET (C#), Pascal, Openlaszlo, XML
Localisation : Toulouse
Contact :

Message par real34 »

Mick@el a écrit :

Code : Tout sélectionner

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 :

Code : Tout sélectionner

int main(void)
{
   int err = 0;
   if (!machin()){err = 1;} // On peut remplacer 1 par une constante #define ;)
   else {
      // Blabla
      if (!truc()){err = 2;}
      else {
          // Blabla
          if (!bidule()){err=3;}
          else{
             printf("Ca marche !\n");
          }
       }
     }

     // Ici le traitement des erreurs
     switch err
        case 1 : /* blabla */ break;
        case 2 : /* blabla */ break;
        case 3 : /* blabla */ break;
        default : return 0;
   return -1;
}
Image
Mick@el
Messages : 541
Enregistré le : 18 févr. 2006 21:45
Langage de programmation connu : Python, PHP, Javascript, C#, C++, C
Localisation : Nancy
Contact :

Message par Mick@el »

real34 a écrit :
Mick@el a écrit :

Code : Tout sélectionner

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 :

Code : Tout sélectionner

int main(void)
{
   int err = 0;
   if (!machin()){err = 1;} // On peut remplacer 1 par une constante #define ;)
   else {
      // Blabla
      if (!truc()){err = 2;}
      else {
          // Blabla
          if (!bidule()){err=3;}
          else{
             printf("Ca marche !\n");
          }
       }
     }

     // Ici le traitement des erreurs
     switch err
        case 1 : /* blabla */ break;
        case 2 : /* blabla */ break;
        case 3 : /* blabla */ break;
        default : return 0;
   return -1;
}
Heu, attends, t'as vu le niveau d'indentation que ça fait ?
Et je te parles pas des if (...) { } c'est encore pire

(et pour les exceptions en C ...)
Mick@el
Messages : 541
Enregistré le : 18 févr. 2006 21:45
Langage de programmation connu : Python, PHP, Javascript, C#, C++, C
Localisation : Nancy
Contact :

Message par Mick@el »

J'utilise pas argc et argv, donc autant pas les mettre
GregLand
Programmeur & Administrateur
Programmeur & Administrateur
Messages : 4431
Enregistré le : 10 oct. 2003 09:36
Langage de programmation connu : Utilisés régulièrement :
- Visual DialogScript
- WinDev
- AutoIt
- AutoHotkey
- Html, Js, Vbs, PHP

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....
Localisation : Les Damps (27)
Contact :

Message par GregLand »

Dis donc... avant de te lancer dans la programmation, apprends a utiliser Google... :D

Dans le champ de recherche, tapes :
Image

Ce sera déjà un bon début Image
Config :
Image
Répondre