Une ligne si les déclarations
J'ai récemment été impliqué dans une dispute avec un collègue de travail, impliquant une seule ligne si consolidés et je voulais voir ce stackoverflow pensée.
Pensez-vous que la déclaration doit être écrite comme suit:
if(condition)
{
statement = new assignment;
}
OU
if(condition)
statement=new assignment;
veuillez fournir une bonne raison pour justifier votre décision.
- Dupliquer: stackoverflow.com/questions/97506/formatting-of-if-statements, stackoverflow.com/questions/691476/..., stackoverflow.com/questions/779332/..., et bien d'autres.
- Par votre modification que vous avez totalement changé la question 😉
- je n'ai pas la modification 😉
- j'ai regardé à travers l'historique d'édition, et il y a eu deux modifications après avoir posé votre question: une re-tagger, et un code de mise en forme avec une tentative d'en faire une réelle question. le sens global n'a pas changé.
- Bien sûr, il l'a fait. Le code "mise en forme" a changé la nature de la question. Le sujet se réfère à "une ligne si les déclarations". Le premier exemple prend maintenant trois lignes et le deuxième exemple, on prend deux.
- Si vous regardez à la question d'origine, il a été écrit EXACTEMENT comme il apparaît maintenant. Cependant, les OP n'ont pas le code de mise en forme réglée correctement, de sorte qu'il est apparu comme une seule instruction. Je suis d'accord, l'avant et après les modifications de modifier le sens de la question, mais à partir de ce qui a été écrit à l'origine (y compris le format) je crois que la façon dont il apparaît maintenant, est ce que l'OP prévu.
- Vous avez raison, mais j'ai été de répondre à geowa indiquant que la modification ne change pas la question, ce qu'elle fit. L'état de la question peut ne pas avoir été ce que l'OP a prévu, mais c'ÉTAIT la question.
Vous devez vous connecter pour publier un commentaire.
si vous devez vraiment utiliser une seule ligne si
sera mieux, puisque sa seule ligne, il doit contenir une seule opération.
if
... Il y a sûrement une place spéciale en Enfer pour les gens qui font cela.J'ai toujours utiliser des accolades de délimitation afin de réduire le risque que quelqu'un (moi y compris) qui sera plus tard introduire un bug en modifiant le code autour de la si la déclaration sans prêter attention à la ligne(s) appartiennent dans le cadre de la si-condition.
EDIT:
Voici un exemple vivant si ce que je viens juste arrivé de tomber sur quelques vieux code:
Notez comment les deux "si" instructions sont dans le bloc de code principal, mais en raison de la mauvaise mise en forme, à première vue, ils semblent être imbriquées. Assurez-vous que tout "bon" programmeur devrait rapidement voir ce qui se passe, mais pourquoi provoquer inutilement la confusion?
J'ai toujours été un fan de croisillons. Si quelqu'un venait à modifier un oneline si l'instruction comme suit:
à
Vous n'obtiendrez pas le comportement attendu.
En utilisant les accolades assez bien assure que si quelqu'un modifie une instruction if, ils vous veillez à placer le droit des états à la bonne place.
Cela dépend vraiment du style de codage de votre groupe. Le groupe doit avoir cohérente des normes de codage. Pour mon groupe, nous utilisons toujours:
Nous faisons cela afin d'éviter les erreurs causées par oublier les accolades après l'instruction if, tels que:
Un autre groupe que j'ai travaillé avec jusqu'à tout récemment, ont toujours utilisé cette syntaxe pour une ligne si les déclarations:
Personnellement je n'aime pas ce que parce qu'elle est moins explicite, mais le plus important c'est de s'en tenir à un uniforme de codage standard pour votre groupe ou de votre projet, afin que le code que vous écrivez ressemble le code de votre co-travailleurs écrire, et est tout aussi facile à lire pour tout le monde dans le groupe.
Les conventions de votre IDE ou de l'environnement peut fournir une bonne base pour vos normes de codage, et peut même être sur mesure pour votre groupe de style.
est ce que je voudrais écrire. À savoir, parce que j'aime bien rangé code qui permet de gagner du temps pour lire/modifier/comprendre.
Dans très peu de cas, je ferais une exception normalement seulement quand je suis rapide et sale de codage quelque chose pour le débogage etc.
Une ligne si l'instruction est toujours très facilement endommagé par la façon dont le point-virgule est placée.
Je fais toujours une ligne
if
déclarations sans-crochets. La présence de parenthèses indique (syntaxiquement correcte) que "oh, je peux faire autre chose ici..." et je n'aime pas à la tentation. Tout ce qui implique plus qu'une seule déclaration doit être divisée en plusieurs lignes avec une bonne crochets.J'irais sans les crochets.
La seule raison pour laquelle vous avez besoin de supports, c'est si vous avez eu plusieurs instructions à l'intérieur du bloc.
Sonne comme un gaspillage de l'un argument.
ou
En règle générale, j'ai horreur d'une ligne ifs sauf que dans ce Perl cas
J'ai auto-configuration du format de tuer votre one-liner, ce qui la met sur deux lignes. En tant que tel, il a besoin d'accolades.
Je l'utilise toujours en joignant entre parenthèses et je n'ai jamais code ligne par ligne ifs, ma démarche ressemble à ceci
parce que je code en Java et c'est la convention pour la langue. Vérifier:
http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#449
L'utilisation de crochets pour empêcher les insectes: certains d'autre pourrait ajouter, plus tard, de nouvelles phrases qui sont suposed être exécutée si la condition et d'oublier les parenthèses