Salut,
a bon ? moi il se crash juste pour le } en trop et pas pour les { en trop (je bug de partout on dirais ^^)
ce que vous dites est exactement la même chose.
Une accolade de fermeture en trop est la même chose qu'un accolade d'ouverture manquante.
Petite exemple:
Factorielle(nombre)
{
if(nombre > 1)
{
nombre *= Factorielle (nombre-1);
}
return nombre;
}
Le code ci-dessus est l'implantation correcte de l'opérateur ! en math (factorielle).
Si je me force pour faire une erreur:
Factorielle(nombre)
{
if(nombre > 1)
nombre *= Factorielle (nombre-1);
}
return nombre;
}
Pour corriger l'erreur de ce code, je peut revenir au code précédant (donc considéré qu'il manque une accolade d'ouverture).
Ou encore, le ramener à ce code:
Factorielle(nombre)
{
if(nombre > 1)
nombre *= Factorielle (nombre-1);
return nombre;
}
Dans ce cas, j'aurais considéré qu'il y avait une accolade de fermeture en trop.
Les deux codes font exactement la même chose, aucun n'est vraiment meilleur que l'autre.
Toutefois, il est plus judicieux de mettre des accolades.
Cet ajout d'accolade permet d'exécuter une lecture et une modification future plus aisément.
D'ailleurs, il n'y a pas de restriction sur le nombre d'accolades, si je voudrais, je pourrais coder ainsi:
Factorielle(nombre)
{
if(nombre > 1)
{{{{
nombre *= Factorielle (nombre-1);
}}}}
return nombre;
}
Le code est encore le même, mais avec beaucoup plus d'accolades, ce qui augmente le risque d'erreur (4 accolades d'un coup...).
bref, la meilleure façon de l'écrire est la première que j'ai proposé:
Factorielle(nombre)
{
if(nombre > 1)
{
nombre *= Factorielle (nombre-1);
}
return nombre;
}
Ceci s'applique à tous les codes.++Sim++