Seule une brève explication, car j'ai fait cela tous les il y a 5 ans.
Il est (avec la plupart des langues) n syntaxiques obligation d'inclure "null" else
(et inutiles {..}
), et dans "de simples petits programmes" il n'est pas nécessaire. Mais les programmeurs ne pas écrire "de simples petits programmes", et, tout aussi important, ils n'ont pas d'écrire des programmes qui sera utilisé à la fois.
Quand on écrire un if/else:
if(something)
doSomething;
else
doSomethingElse;
cela semble simple et on ne voit même le point de l'ajout d' {..}
.
Mais un jour, quelques mois à partir de maintenant, un autre programmeur (vous ne pourrait jamais faire une telle erreur!) aurez besoin pour "améliorer" le programme et ajouter un énoncé.
if(something)
doSomething;
else
doSomethingIForgot;
doSomethingElse;
Soudain, doSomethingElse
un peu oublie qu'il est censé être dans l' else
de la jambe.
Donc, vous êtes un bon petit programmeur et que vous utilisez toujours {..}
. Mais vous écrivez:
if(something) {
if(anotherThing) {
doSomething;
}
}
Tout est bien et bon jusqu'à ce que le petit nouveau fait de minuit modification:
if(something) {
if(!notMyThing) {
if(anotherThing) {
doSomething;
}
else {
dontDoAnything; // Because it's not my thing.
}}
}
Oui, c'est mal formaté, mais c'est la moitié du code dans le projet, et les "auto formateur" obtient bollixed par tous les #ifdef
des déclarations. Et, bien sûr, le code est beaucoup plus compliqué que ce jouet exemple.
Malheureusement (ou pas), j'ai été de ce genre de chose depuis quelques années maintenant, donc je n'ai pas de frais "réels" par exemple dans l'esprit-le ci-dessus est (évidemment) artificiel et un peu à l'eau de rose.