Bonjour,
Est ce la structure ((A=B)?C:D) en C++ est possible en java aussi?
MErci
Version imprimable
Bonjour,
Est ce la structure ((A=B)?C:D) en C++ est possible en java aussi?
MErci
Oui tu fais:
Code:(a == b) ? c : d
Merci
j'essai de le faire comme ça :
Code:
1
2
3
4
5
6
7 (!Fucntion1()) ? A.action() : System.out.println("test bidon"); Fucntion1 retourne un boolean A une instance d'objet
Mais ça ce marche pas
bonjour,
Normal tu ne peux utiliser cette instruction que dans un cas comme celui ci :
N'oublie pas que d'écrire des lignes pareilles est déconseilléCode:max = a>b ? a : b;
voilà
bon courage
Soit
(a == b) c : d;
c et d doivent être de même type.
Et si ce sont des méthodes elles doivent renvoyer le même type de retour...
Merci pour ces précieuses précisions.
c'est totalement fauxCitation:
Envoyé par yann2
Tu peux très bien faire
retour = (!test()) ? function1() : function2();
A condition que function1 et function2 renvoient le même type de donnée...
Depuis quand c'est déconseillé !!!Citation:
N'oublie pas que d'écrire des lignes pareilles est déconseillé
Mieux vaut-il écrire
ouCode:(a == b) ? c : d;
C'est pas que c'est déconseillé, c'est qu'il ne faut pas en abuser et rester toujours lisibleCode:
1
2
3
4
5
6 if (a == b) { // c } else { // d }
ne pas faire un truc du genre
Code:if ((temp = (test1() ? function1() : function2()).test2()) != null)
Ben, c'est très partique, ça tient sur une ligne...
Mais le problème, c'est que c'est illisible.
Et c'est pas sûr que ce soit plus rapide qu'un if...else...
De plus cet opérateur existe en Java seulement parce qu'il existe en C
Non il existe parceque il est très partique...Citation:
De plus cet opérateur existe en Java seulement parce qu'il existe en C
Ca évite tout simplement un emilement de if... else...
Si tu le dis ...
Mais,Citation:
Envoyé par thibaut
Ca correspond au cas que j'ai donné. A part les fonctions, je ne vois pas laCode:retour = (!test()) ? function1() : function2();
différence.
Ton exemple semble supposer que tu ne peux qu'utiliser une comparaison pour retourner un valeur booléenne.
Euh
desole si l'exemple n'était pas bon.
Par contre, il est impossible que l'on puisse penser une valeur booléenne
en retour. Que vaut true>false ???
M'enfin, on ne va pas polémiquer la dessus .
Tu as tout à fait raison... et en plus true > false est impossible.Citation:
Par contre, il est impossible que l'on puisse penser une valeur booléenne
en retour. Que vaut true>false ???
C'était juste pour généraliser ton exemple ...