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

Langage Java Discussion :

probleme avec les operateurs de comparaison


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 17
    Points
    17
    Par défaut probleme avec les operateurs de comparaison
    bonjour,
    voila je viens de commencer a apprendre java et j'apprends c++ en parallele. J'ai donc essayé de traduire mes programmes c++ en java, mais j'ai un petit probleme:
    Dans mon if...else je n'arrive pas a utiliser plus grand ou plus petit il me le refuse.

    import static java.lang.String.int;
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )
    Ai je fait une erreur quelque part?

    Merci d'avance de votre aide.

    ^^

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    import static java.lang.String.int;
    tu es sûr de cette ligne ? le .int est à supprimer.

    quels sont les types de valeur1 et valeur 2 ?

    quelle est l'erreur que tu obtiens ?
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par in
    quels sont les types de valeur1 et valeur 2 ?

    ce sont des valeurs numeriques

    quelle est l'erreur que tu obtiens ?
    j'obtiens l'erreur suivante:

    SigneDuProduit.java:2: <identifier> expected
    import static java.lang.String.int;
    ^

    tu es sûr de cette ligne ? le .int est à supprimer.
    si je suprime .int j'obtiens alors 6 erreurs au niveau des <, >.

    merci

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par vanilla94
    si je suprime .int j'obtiens alors 6 erreurs au niveau des <, >.

    merci
    C'est simplement que si tu la mets, l'erreur est tellement énorme que le compilateur ne te dit pas les erreurs suivantes...

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par ®om
    C'est simplement que si tu la mets, l'erreur est tellement énorme que le compilateur ne te dit pas les erreurs suivantes...

    lorsque je l'enleve j'obtiens alors:

    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
    21
    22
    23
    {
    SigneDuProduit.java:2: cannot find symbol
    symbol: class java
    import static java.String;
                  ^
    SigneDuProduit.java:2: static import only from classes and interfaces
    import static java.String;
    ^
    SigneDuProduit.java:14: operator < cannot be applied to java.lang.String,int   if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )
                                           ^
    SigneDuProduit.java:14: operator < cannot be applied to java.lang.String,int
                    if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0
    ) ) )
                                                  ^
    SigneDuProduit.java:14: operator > cannot be applied to java.lang.String,int
                    if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0
    ) ) )
                                                                   ^
    SigneDuProduit.java:14: operator > cannot be applied to java.lang.String,int
                    if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0
    ) ) )
                                                                                  ^
    6 errors}
    sachant que toutes les erreurs se situent au niveau des signes: < et >.

  6. #6
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Pourquoi tu fais des import static? Une classe à importer ne doit pas être importée "static", c'est pour charger des membres d'une classe le static...

    En plus, String est importée par défaut (java.lang.*).
    Ensuite, je ne sais pas ce que tu compares, quel est le type de valeur1 etc...?
    Montre tout ton code...

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    voici le code de depart non modifié:

    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
    21
    22
    23
    import static java.lang.System.out;
    import static java.lang.String.int;
    import java.util.Scanner;
     
    public class SigneDuProduit
    {
    	public static void main(String arg[])
    	{
    		Scanner myScanner=new Scanner(System.in);
    		out.println("Veuillez saisir deux valeurs");
    		String valeur1= myScanner.next();
    		String valeur2= myScanner.next();
     
    		if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )
    		{
    			out.println("le signe du produit est positif");
    		}
    		else
    		{
    			out.println("le signe du produit est negatif");
    		}
    	}
    }

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par vanilla94
    voici le code de depart non modifié:

    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
    21
    22
    23
    24
    25
    import static java.lang.System.out;
    //import static java.lang.String.int; // ça ne veut rien dire
    import java.util.Scanner;
     
    public class SigneDuProduit
    {
    	public static void main(String arg[])
    	{
    		Scanner myScanner=new Scanner(System.in);
    		out.println("Veuillez saisir deux valeurs");
    		String valeur1= myScanner.next();
    		String valeur2= myScanner.next();
     
    // pour comparer des objets, utilise la méthode compareTo !
     
    //		if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )
    //		{
    //			out.println("le signe du produit est positif");
    //		}
    //		else
    //		{
    //			out.println("le signe du produit est negatif");
    //		}
    //	}
    //}

  9. #9
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Ah et aussi, pour parser un String en int:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i = Integer.parseInt(maString);

  10. #10
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Salut

    Je pense que le message d'erreur est clair :

    Citation Envoyé par compilateur
    SigneDuProduit.java:14: operator < cannot be applied to java.lang.String,int if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )
    SigneDuProduit.java:14: opérateur < ne peut être appliquer à java.lang.String,int : if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )

    En gros tu ne peux pas utiliser < et > pour comparer un int et un String.
    Pour transformer une chaine en entier tu peux utiliser

    int entier = Integer.parseInt(chaine);

    Mais la classe Scanner permet facilement de récupérer des entiers. Ainsi :

    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
    21
    22
     
    import java.util.Scanner;
     
    public class SigneDuProduit
    {
      public static void main(String arg[])
      {
        Scanner myScanner=new Scanner(System.in);
        System.out.println("Veuillez saisir deux valeurs");
        int valeur1= myScanner.nextInt();  // ça change ici
        int valeur2= myScanner.nextInt();  // ça change ici
     
        if ( ( (valeur1<0) && (valeur2<0) )||( (valeur1>0) && (valeur2>0) ) )
        {
          System.out.println("le signe du produit est positif");
        }
        else
        {
          System.out.println("le signe du produit est negatif");
        }
      }
    }

  11. #11
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    merci beaucoup.

    Mais je ne sais pas utiliser compareTo, j'ai debuté java il y a 2 semaines, je n'avais jamais utiliser de langages de programmation.

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par vanilla94
    ce sont des valeurs numeriques
    D'après ton code, ce sont des String et non des valeurs numériques. Même si tu saisies des valeurs numériques, comme elles sont stockées dans des chaines ne caractères, elles seront concidérées comme des chaines de caractères.

    Il faut donc soit que tu les comparent en tant que chaines de caractères, soit que tu les convertissent en int (Integer.parseInt())

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problemes avec les operateurs
    Par Louis.Durand dans le forum Ruby
    Réponses: 1
    Dernier message: 14/05/2010, 05h43
  2. un probleme avec les operateurs
    Par miomikio dans le forum C
    Réponses: 4
    Dernier message: 12/10/2007, 10h14
  3. [comparaison] probleme avec les accents
    Par Bibicmoi dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 29/08/2005, 20h51
  4. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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