lequel est le meilleur dans Java
code style
?booléen de vérification si()
boolean status = true;
if(!status) {
//do sth
} else {
//do sth
}
ou
if(status == false) {
//do sth
} else {
//do sth
}
lequel est le meilleur dans Java
code style
?booléen de vérification si()
boolean status = true;
if(!status) {
//do sth
} else {
//do sth
}
ou
if(status == false) {
//do sth
} else {
//do sth
}
Ancien, bien sûr. Ce dernier est redondant, et ne fait que montrer que vous n'avez pas très bien compris le concept des booléens.
Encore une suggestion: Choisissez un nom différent pour votre variable boolean
. Comme par this Java style guide:
est préfixe doit être utilisé pour les variables et les méthodes booléennes.
isSet
,isVisible
,isFinished
,isFound
,isOpen
C'est la convention de nommage pour
boolean
méthodes et variables utilisées par Sun pour les packages de base Java.En utilisant le préfixe
is
permet de résoudre un problème commun de choisir les mauvais noms booléennes commestatus
ouflag
.isStatus
ouisFlag
ne correspond tout simplement pas, et le programmeur est forcé de choisir plus noms significatifs.méthodes setter pour
boolean
les variables doivent avoir mis en préfixe comme dans:
void setFound(boolean isFound);
Il y a quelques alternatives au préfixe
is
qui convient le mieux dans certaines situations . Ce sonthas
,can
etshould
préfixes:boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
Essayez 'good_status' ou' fair_weather_status' ou 'status_known' ou' status_unknown' ou même 'status_malus__vana_salus__semper_dissolubilis'. :) – tchrist
L'ancien. Ce dernier ajoute simplement de la verbosité.
Ceci est plus lisible et une bonne pratique aussi.
if(!status){
//do sth
}else{
//do sth
}
sauf que je retournerais les clauses que vous venez de tester si (état) –
En outre, vous pourriez reformuler le nom de la variable avec un préfixe "is-" pour indiquer quelle est la valeur par défaut est. –
Le premier, ou if (status) { /*second clause*/ } else { /* first clause */ }
EDIT
Si la deuxième forme est vraiment désiré, puis if (false == status) <etc>
, alors que plus laid, est probablement plus sûr (fautes de frappe WRT).
+1 pour (false == status), qui donne également des indications pour la question 'if (0 == i)' non demandée – subsub
Je vous suggère de faire:
if (status) {
//positive work
} else {
// negative work
}
Les ==
essais, alors que de toute évidence redondante, courent aussi le risque d'une seule faute de frappe =
qui entraînerait une cession.
Le premier. Mais juste un autre point, ce qui suit pourrait également rendre votre code plus lisible:
if (!status) {
// do false logic
} else {
// do true logic
}
Notez qu'il existe des espaces supplémentaires entre if
et le (
, et aussi avant la déclaration else
.
EDIT
Comme l'a noté @Mudassir, s'il est NO autre code partagé dans la méthode utilisant la logique, le meilleur style serait:
if (!status) {
// do false logic
}
// do true logic
@Downvoter - Voulez-vous commenter? –
Oui, j'ai downvoted votre réponse. Mais ce n'est pas personnel. – Mudassir
@Mudassir * sigh * ... –
Si vous regardez Dans les alternatives sur cette page, bien sûr, la première option semble mieux et la seconde est plus verbeuse. Mais si vous regardez à travers une grande classe que quelqu'un d'autre a écrit, cette verbosité peut faire la différence entre la réalisation immédiate de ce que le conditionnel teste ou non. L'une des raisons pour lesquelles je me suis éloigné de Perl est qu'il repose beaucoup sur la ponctuation, qui est beaucoup plus lente à interpréter pendant la lecture.
Je sais que je suis mis en minorité ici, mais je vais presque toujours me ranger du côté du code plus explicite afin que les autres puissent le lire avec plus de précision. Là encore, je n'utiliserais jamais non plus une variable booléenne appelée "status". Peut-être est succès ou juste succès, mais «statut» étant vrai ou faux ne signifie rien pour le lecteur occasionnel intuitivement. Comme vous pouvez le constater, je suis très sensible à la lisibilité du code parce que je lis tellement de code que d'autres ont écrit.
Le premier style est meilleur. Bien que vous devriez utiliser un meilleur nom de variable
Cela dépend aussi de la façon dont vous nommez votre variable.Quand les gens demandent "ce qui est une meilleure pratique" - cela implique implicitement que les deux sont corrects, donc c'est juste une question qui est plus facile à lire et à maintenir.
Si vous nommez votre variable « statut » (ce qui est le cas dans votre exemple de code), je préférerais voir
if(status == false) // if status is false
D'autre part, si vous aviez appelé votre variable isXXX (par exemple isReadableCode), alors le premier est plus lisible. considérer:
if(!isReadable) { // if not readable
System.out.println("I'm having a headache reading your code");
}
Mon sentiment personnel en ce qui concerne la lecture
if(!status) : if not status
if(status == false) : if status is false
si vous n'êtes pas habitué à la lecture de statut!. Je ne vois aucun mal à faire comme la deuxième façon.
si vous utilisez « actif » au lieu de l'état de chose I si (! Actif) est plus lisible
'interrupteur (état) {cas vrai: {...; Pause; } défaut: { ...; Pause; }} ':) – tchrist
@tchrist: ... et votre point est? – missingfaktor
switch (booléen) est faux, booléen ne peut pas être dans le commutateur – ashishdhiman2007