web-dev-qa-db-fra.com

Que signifie cette ligne en Java: boolean retry = id == 1;

Cela fait un moment que je suis en train d'apprendre Java et j'apprends encore de nouvelles astuces de syntaxe. Je suis tombé sur ceci dans le code source Android:

boolean retry = id == 1;

Qu'est-ce que ça veut dire?

65
Phat7

retry est true si id a la valeur 1, sinon retry est false.

151
Obl Tobl

id == 1 est une expression booléenne qui est vraie si id est égale à 1 et false sinon. 

boolean retry = id == 1; déclare une variable booléenne nommée retry et attribue la valeur de l'expression booléenne id == 1 à cette variable.

Donc, il déclare une variable booléenne qui vaut true si id == 1 et false sinon.

Pour le rendre un peu plus clair, vous pourriez l'écrire de cette façon:

boolean retry = (id == 1);
220
JB Nizet

C'est pareil que

boolean retry;
if (id == 1)
   retry = true;
else
   retry = false;
67
Peter Lawrey

==, qui est le prédicat d'égalité, a une priorité supérieure à =, qui est l'opérateur d'affectation.

Par conséquent, id == 1 est évalué en premier, puis sa valeur (true ou false) est attribuée à retry.

44
Anirudha

La tentative booléenne obtient la valeur true si id == 1.

C'est pareil que:

boolean retry;
if (id == 1) {
    retry = true;
} else {
    retry = false;
}
14
duffy356

tout d'abord, la variable id est évaluée avec 1, si bien que id est une integer.

Ensuite, la valeur retry est affectée à cette évaluation. Par conséquent, si id est égal à 1, retry deviendra true et toute autre valeur de idretry deviendra false.

6
bas

Je trouve que le simple fait d'utiliser parens aide à dissiper la confusion derrière des déclarations complexes comme celle-ci. 

boolean retry = (id == 1); me semble beaucoup plus logique. Ici, il est clair que (id == 1) est une expression en cours d'évaluation et que le résultat est affecté à boolean retry

3
Zeph

Il s’agit d’une opération ternaire, (x) ? true : false en C, C++, C #, etc .;

La syntaxe similaire:

boolean retry = (id == 1)? true: false; 

Ou cela peut être écrit autrement:

boolean retry;
if (id == 1) {
    retry = true;
} else {
    retry = false;
}
3
Babul Mirdha

Cette ligne crée une variable booléenne et la définit sur true si id est égal à 1 et false si ce n'est pas le cas.

3
ShuklaSannidhya

Il serait peut-être plus facile de voir ce qui se passe si vous le regardez comme ceci:

boolean retry = (id == 1);

Donc, fondamentalement, il vérifie si id est égal à 1, puis assigne le résultat à la nouvelle tentative.

2
PriestVallon

C'est fondamentalement la même chose que retry = (id == 1). Il évalue l'expression booléenne et l'assigne à retry.

2
appsecguy

retry assigne une expression qui sera vraie ou fausse car retry est une boolean. De plus, == sera résolu en premier, puis il sera attribué à retry.

2
Usman Riaz

C'est une façon de définir une variable booléenne.

Lorsque id est 1, la valeur de retry sera true.

2
Sathyesh Selvarajah

La variable booléenne retry aura la valeur 0 ou 1 selon que l'expression id==1 renvoie true ou false.

Si la valeur de id est 1, alors id==1 correspondra à true, donc retry=1.

Et si la valeur de id est 0, alors id==1 correspondra à false, donc retry=0.

Veuillez noter que == est un opérateur de comparaison.

1
Nikita Sindwani

Le code peut écrire comme ça, alors il sera compris facilement, tu crois. Enfin, merci de donner la chance de répondre à la question!

boolean retry = (id == 1);
0
Mr.Nice