[JAVA] condition
Résolu
der_igel
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
der_igel Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
der_igel Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaie de réaliser une condition de la forme
Si je fais
ça marche.
Si je fais
(horaires étant une String[] obtenue en splittant une String)
Je ne comprends pas pourquoi j'ai ce message, et je ne vois pas quel assignment est en cause ?
Merci
J'essaie de réaliser une condition de la forme
(condition) ? instruction si vrai : instruction si faux
Si je fais
if ( horaires[0]!= null ) { this.lun1=horaires[0]; }else { this.lun1=""; }
ça marche.
Si je fais
(horaires[0]!= null) ? this.lun1=horaires[0] : this.lun1="";, ça ne marche pas et eclipse me donne comme message d'erreur "The left-hand side of an assignment must be a variable".
(horaires étant une String[] obtenue en splittant une String)
Je ne comprends pas pourquoi j'ai ce message, et je ne vois pas quel assignment est en cause ?
Merci
A voir également:
- [JAVA] condition
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Excel cellule couleur si condition texte - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
7 réponses
Merci Fiddy, je n'avais pas dû bien comprendre la syntaxe. Pourtant j'ai cherché des exemples, mais je n'en ai pas trouvé...
Il n'y a plus d'erreurs maintenant, mais il ne fait pas encore ce que je voulais : afficher une chaîne vide à la place de "null". Je cherche...
Il n'y a plus d'erreurs maintenant, mais il ne fait pas encore ce que je voulais : afficher une chaîne vide à la place de "null". Je cherche...
Bon, ça ne marche pas, mais ça vient peut-être de tapestry. Il affiche toujours "null" à la place de ""... Je vais chercher une autre solution.
Merci fiddy pour ta réponse, je mets "résolu" car le problème de la condition est bien résolu.
Merci fiddy pour ta réponse, je mets "résolu" car le problème de la condition est bien résolu.
C'est normal. Tu as fait une erreur classique.
Explication :
horaires[0]!="null" va comparer les instances de String. Ils ont des instances différentes. Donc cette instruction est vraie (même si horaires[0]="null"). Du coup this.lun1 va récupérer horaires[0] qui vaut null dans ton cas.
En java, pour comparer deux String, on utilise la méthode equals.
Par exemple :
Cdt
Explication :
this.lun1=(horaires[0]!= "null") ? horaires[0] : "";
horaires[0]!="null" va comparer les instances de String. Ils ont des instances différentes. Donc cette instruction est vraie (même si horaires[0]="null"). Du coup this.lun1 va récupérer horaires[0] qui vaut null dans ton cas.
En java, pour comparer deux String, on utilise la méthode equals.
Par exemple :
this.lun1=(! horaires[0].equals("null")) ? horaires[0] : "";
Cdt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait, l'opérateur ternaire marche comme suit :
Si la condition est vraie, alors ça renvoie valeur1 sinon valeur2. C'est pour ça qu'il faut mettre de la forme :
Il n'y a plus d'erreurs maintenant, mais il ne fait pas encore ce que je voulais : afficher une chaîne vide à la place de "null". Je cherche...
Comment ça ?
condition?valeur1:valeur2;
Si la condition est vraie, alors ça renvoie valeur1 sinon valeur2. C'est pour ça qu'il faut mettre de la forme :
a=1<3?1:0;
Il n'y a plus d'erreurs maintenant, mais il ne fait pas encore ce que je voulais : afficher une chaîne vide à la place de "null". Je cherche...
Comment ça ?
Donc si j'ai bien compris, après l'instruction
En fait, ça ne marche pas... J'ai mis, comme tu m'as conseillé,
Le but est que quand la chaîne horaires[0] est null, this.lun1 prenne la valeur "" et non pas null. Mais si j'affiche this.lun1, j'obtiens toujours null. J'ai fait divers essais :
La deuxième ligne m'a permis de voir que this.lun1 ne prenait pas la valeur donnée après ":"
a=1<3?1:0;a vaut 1 si 1<3 et 0 sinon.
En fait, ça ne marche pas... J'ai mis, comme tu m'as conseillé,
this.lun1=(horaires[0]!= null) ? horaires[0] : "";
Le but est que quand la chaîne horaires[0] est null, this.lun1 prenne la valeur "" et non pas null. Mais si j'affiche this.lun1, j'obtiens toujours null. J'ai fait divers essais :
this.lun1=(horaires[0]!= null) ? horaires[0] : ""; this.lun1=(horaires[0]!= null) ? horaires[0] : "1"; this.lun1=(horaires[0]!= "null") ? horaires[0] : ""; // au cas où je n'aurais pas une chaîne null mais une chaîne de valeur "null" this.lun1=(horaires[0]!= "null") ? horaires[0] : "1";
La deuxième ligne m'a permis de voir que this.lun1 ne prenait pas la valeur donnée après ":"