Bonjour,
Est ce la structure ((A=B)?C) en C++ est possible en java aussi?
MErci
Bonjour,
Est ce la structure ((A=B)?C) en C++ est possible en java aussi?
MErci
Oui tu fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part (a == b) ? c : d
Merci
j'essai de le faire comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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 fauxEnvoyé 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é !!!N'oublie pas que d'écrire des lignes pareilles est déconseillé
Mieux vaut-il écrire
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part (a == b) ? c : d;
C'est pas que c'est déconseillé, c'est qu'il ne faut pas en abuser et rester toujours lisible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (a == b) { // c } else { // d }
ne pas faire un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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...De plus cet opérateur existe en Java seulement parce qu'il existe en C
Ca évite tout simplement un emilement de if... else...
Mais,Envoyé par thibaut
Ca correspond au cas que j'ai donné. A part les fonctions, je ne vois pas la
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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.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 ...
Partager