IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

java condition ternaire


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut java condition ternaire
    bonjour
    quel qu'un aurait aimabilité de m' expliquer "condition ternaire" avec exemple
    s'il vous plaît

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 42
    Points : 41
    Points
    41
    Par défaut
    Bonjour, je pense que tu veux parler d'opérateur ternaire. Ta question est traitée ici dans la FAQ Java : http://java.developpez.com/faq/java/...YWORD_ternaire.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    d'accord
    admettons:
    a==b?c:d ça veut dire
    si a=b retourne valeur c sinon retorune valeur d.

    mais en voyant ce prg qui est un peu compliqué pour moI!!
    veuillez m'expliquez s'il vous plaît
    a=10; b=20
    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)):a==10)?a/2:a%3);

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 119
    Points : 192
    Points
    192
    Par défaut
    L'opérateur ternaire, c'est bien, mais il ne faut pas en abuser parce qu'il n'est pas très lisible.

    Citation Envoyé par domxaline Voir le message
    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)):a==10)?a/2:a%3);
    Ça compile cette horreur ?
    Les deux dernières parenthèses fermantes ne correspondent pas à une parenthèse ouvrante...

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par domxaline Voir le message
    a=10; b=20
    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)):a==10)?a/2:a%3);
    Le plus simple avec ce genre d'horreur, c'est de décomposer Je vais pas le faire pour toi car, comme mentionné, il manque deux parenthèses ouvrantes, et suivant leur emplacement, ala décomposition n'est pas la même.

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Citation Envoyé par domxaline Voir le message
    d'accord
    admettons:
    a==b?c:d ça veut dire
    si a=b retourne valeur c sinon retorune valeur d.

    mais en voyant ce prg qui est un peu compliqué pour moI!!
    veuillez m'expliquez s'il vous plaît
    a=10; b=20
    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)):a==10)?a/2:a%3);
    Le code là est faux si je ne me gourre pas. Si on rajoute une parenthèse ici et qu'on supprime celle de fin :

    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)):(a==10)?a/2:a%3;

    Ca donnerait ca à priori, sachant que j'ai l'ai codé à l'arrache, donc je me suis peut être planté dans les bloc ^^.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    if(a<b) {
      if(b<20) {
         b*2;
      }else {
           if(b>20) {
               b%3;
           }
            else {
                b/4;
            }
       }
    } else {
          if(a==10) {
              a/2;
          } 
           else {
                a%3
           }
    }
    Maintenant si la personne qui t'a donné ce code est un dev, dis lui de changer de metier, si c'est un prof qui veut vous faire apprendre le ternaire, dis lui aussi de changer de métier. Non vraiment, cette ligne est vraiment horrible Oo

  7. #7
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)):a==10)?a/2:a%3);

    5 parenthèses ouvrantes pour 7 fermantes... y a un OS, ni toi ni moi ni le compilo ne peut résoudre ce problème

    en tout cas, ça ressemble à un exercice d'un prof en mal de reconnaissance mal adapté à ce qu'un développeur rencontrera sur le terrain. N'y a t'il pas des choses plus intelligentes à faire apprendre aux étudiants?

    Edit:
    si c'est un prof qui veut vous faire apprendre le ternaire, dis lui aussi de changer de métier.


    Maintenant si la personne qui t'a donné ce code est un dev, dis lui de changer de metier,
    Helas certain dev sont pret à tout pour se rendre indispensable, ils jouent sur la complexité (faussé) du code pour montrer que les autres mettent du temps à comprendre quelques simples lignes
    "La connaissance s'accroît quand on la partage."(Socrate)

    Si vous trouvez vous même la solution au POST que vous venez de poser, indiquez nous comment vous avez fait

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    c'est vrai vous m'avez ouvert les yeux,ils manquent 2 parenthès
    voilà le modif

    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4)): ((a==10)?a/2:a%3);

    mon profs dit tous le temps
    il faut commencer par la difficile,comme ça facile sera plus facile

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par domxaline Voir le message
    c'est vrai vous m'avez ouvert les yeux,ils manquent 2 parenthès
    voilà le modif

    (a<b)?((b<20)?b*2: ((b>20)?b%3:b/4))(a==10)?a/2:a%3);

    mon profs dit tous le temps
    il faut commencer par la difficile,comme ça facile sera plus facile
    Comme je l'ai dit, décompose et ce sera plus facile à lire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (a<b)?
      ( (b<20)?
          b*2: 
          ((b>20)?
                b%3:
                b/4))
     :((a==10)?
          a/2:
          a%3)
    Et je dirais que ton prof a été gentil sur le coup, aucune des parenthèse n'est utile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a<b?b<20?b*2:b>20?b%3:b/4:a==10?a/2:a%3;
    aurai donné le même résultat. Mais bon, généralement, quand on voit ça, on flingue le programmeur!

  10. #10
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    mon profs dit tous le temps
    il faut commencer par la difficile,comme ça facile sera plus facile
    tant qu'a faire difficile autant commencer par de l'assembleur sur un microprocesseur rare et peu usité.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    tant qu'a faire difficile autant commencer par de l'assembleur sur un microprocesseur rare et peu usité.
    <troll>les powerPC?</troll>

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    un des amis internet qui m'a donné cette reponse,je vous donne ça ;peut être ça aidera quelqu'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (a < b) { 
    ((b<20)?b*2: ((b>20)?b%3:b/4)) 
    } else { 
    ((a==10)?a/2:a%3) 
    }
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (a < b) { 
      if (b < 20) { 
        b*2 
      } else { 
        ((b>20)?b%3:b/4)) 
      } 
    } else { 
      if (a==10) { 
        a/2 
      } else { 
        a%3 
      } 
    }
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    if (a < b) { 
      if (b < 20) { 
        b*2 
      } else { 
        if (b > 20) { 
          b%3 
        } else { 
          b/4 
        } 
      } 
    } else { 
      if (a==10) { 
        a/2 
      } else { 
        a%3 
      } 
    }

    Donc au final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    int a = 10; 
    int b = 20; 
    int resultat = 0; 
    if (a < b) { 
      if (b < 20) { 
        resultat = b * 2; 
      } else { 
        if (b > 20) { 
          resultat = b % 3; 
        } else { 
          resultat = b / 4; 
        } 
      } 
    } else { 
      if (a==10) { 
        resultat = a / 2; 
      } else { 
        resultat = a % 3; 
      } 
    }
    merci beaucoup pour votre aides

  13. #13
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    pas forcémént

    http://www.vaughns-1-pagers.com/comp...-evolution.htm

    il y'a eu pas mal de processeurs qui existe ou ont existé (sparc/pa-risc/alpha/mips/zilog Z80,...)

    le zilog z80 etait utilisé par mon prof de math quand j'etais au college
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  14. #14
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Citation Envoyé par turican2 Voir le message

    Helas certain dev sont pret à tout pour se rendre indispensable, ils jouent sur la complexité (faussé) du code pour montrer que les autres mettent du temps à comprendre quelques simples lignes
    C'est pas faux, un ami avait comme collegue quelqu'un qui commentait son code en latin. Dixit "Oué on peut dire plus de chose plus facilement en latin".

    *rêve d'un jour où il sera chef de projet et il pourra torturer à souhait ce genre de personne*

  15. #15
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    pour moi un développeur indispensable :
    - c'est celui qui fait un code lisible et correctement commenté/documenté
    - c'est celui qui est capable d'écrire/de suivre une spec qui tienne la route
    - c'est celui qui est capable de voir les conneries (dans les spec/le code) et de remonter l'info


    bref il se rend indispensable par sa valeur ajoutée, ses avis plus que par le fait que c'est le seul qui maitrise une appli.

    En plus si il code correctement et de façon lisible il est plus facile de le remplacer quand il se lasse du projet pour le mettre sur un autre.

    bref me concernant le mec indispensable n'est pas celui qui pond du code illisible et pas commenté/documenté.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  16. #16
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    -c'est celui qui fait un code lisible et correctement commenté/documenté
    - c'est celui qui est capable d'écrire/de suivre une spec qui tienne la route
    - c'est celui qui est capable de voir les conneries (dans les spec/le code) et de remonter l'info




Discussions similaires

  1. Condition ternaire JavaScript
    Par Vinestro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/10/2010, 10h44
  2. [Java] comment faire les conditions ?
    Par tarekphp dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 22/08/2008, 09h39
  3. [java] pb Opérateur ternaire
    Par phileme dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/07/2004, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo