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 :

condition if marche pas


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 condition if marche pas
    Bonsoir,
    j'ai écrit ce condition if, mais ce dernier donne erreur

    !(A/100) est souligné

    if (( B==(A/400) || !(A/100) && (A/4) ))
    veuillez m'aidez svp

  2. #2
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Dans ton test tu mélange des int ou float avec des boolean

    Un peu comme si tu comparais des mètres et des kilogrammes

    Dis nous ce que tu veux sous la forme : je veux tester si B est égal à A/400, ou B n'est pas égal à A/100 ..... on te feras ton test

    Donnes nous aussi le type de A et B int float...
    Développeur Java
    Site Web

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    System.out.println("Entrez le numéro du jour:");
    Scanner valeur=new Scanner(System.in);
    int J=valeur.nextInt();
    System.out.println("Entrez le numéro du mois:");
    int M=valeur.nextInt();
    System.out.println("Entrez l'année:");
    int A=valeur.nextInt();
     
    int VM, VJ,B;
    mon algorithme est la suivante
    B= A divisé par 400 ou (non(A divisé par 100) et A divisé par 4
    JMAX=0;
    VM = M>=1 et M=>12
    si VM alors
    si M=2 et B alors
    JMAX=29
    sinonsi M=2 alors
    JMAX =28
    sinonsi M=4 ou M=6 ou M=9 ou M=11 alors
    JMAX=30
    sinon
    JMAX=31
    finsi
    VJ= J>=1 et J=< JMAX
    finsi


    ainsi de suite;
    mon prg consiste, utilisateur donne une date et le prg dit que le date est valide ou pas

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    l'opérateur de division, comme tu as certainement dû le voir en de nombreuses occasions, calcule la division des deux nombres à sa droite et à sa gauche. Le résultat de cet opérateur est donc un troisième nombre, la division.
    De cela, on peut déduire que son résultat n'est pas un booléen, et notamment pas un indicateur de si quelque chose est arithmétiquement divisible par autre chose.

    Pour savoir si un nombre est divisible par un autre, on peut regarder si le reste de la division euclidienne est zéro :

    Exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(3%2 == 0) {
      System.out.println("3 est divisible par 2");
    } else {
      System.out.println("3 n'est PAS divisible par 2");
    }
     
    if(4%2 == 0) {
      System.out.println("4 est divisible par 2");
    } else {
      System.out.println("4 n'est PAS divisible par 2");
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    B= A divisé par 400 ou (non(A divisé par 100) et A divisé par 4
    c'est pas ce que marc te demande
    tu donne A et B en int mais tu retourne plus ou moins dun boolean cest pas logique

    mais pour faire des opérations avec une date tu a l'objet Calendar en Java Standard la tu au moins essayer tu fais tout avec
    Développeur Java
    Site Web

  6. #6
    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
    en essayant comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(B==((A/4) && !(A%100)) ||(A/400))
    j'ai un message:
    multiple markers at this line
    operator ! est undefined for the argument type int

    je comprend que operator ! undefined pour argument type int
    quel est la solution svp?

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello again,

    La solution est de faire ce que j'ai dit et de ne pas faire autre chose que ce que j'ai dit.

    Notamment, ton code ne contient aucun 0 et aucun ==
    Il est donc évident que ça ne ressemble pas à mon exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Ca serait bien de faire un petit effort pour lire les réponses qui te sont données
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    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
    vous voulez que je fasse comme ceci?

    if ( (A%400) || (!(A%100)==0) && (A%4) )

  10. #10
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Disons que c'est un début..

    A ton avis, quel est le type de la donnée renvoyé par l'opération "A%400" ? Et en quoi/comment ce type peut être utilisé dans un if(..) ?

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Nous, personnellement, on ne veut rien...

    Ton expression est fausse, suffit de la passer dans le compilo pour le voir directement. Rien que le

    ne marchera pas, le reste même pas besoin d'y regarder.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  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
    Citation Envoyé par Nico02 Voir le message
    Disons que c'est un début..

    A ton avis, quel est le type de la donnée renvoyé par l'opération "A%400" ? Et en quoi/comment ce type peut être utilisé dans un if(..) ?
    t'as raison
    ce type int je crois,
    il faut utiliser le boolean

  13. #13
    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
    Citation Envoyé par wax78 Voir le message
    Nous, personnellement, on ne veut rien...

    Ton expression est fausse, suffit de la passer dans le compilo pour le voir directement. Rien que le

    ne marchera pas, le reste même pas besoin d'y regarder.

    je sais bien il ne marche pas pour ça je retourne vers vous

  14. #14
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Citation Envoyé par domxaline Voir le message
    t'as raison
    ce type int je crois,
    il faut utiliser le boolean
    Bon ben maintenant, comment transformer ton opération pour qu'elle retourne un booléen ? (On t'a déjà donné la réponse..)

  15. #15
    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
    est ce que c'est bien ça

    if ( (A%400==0) || (!(A%100==0) && (A%4==0) ) )

  16. #16
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Bah ça me parait déjà mieux non ? T'en penses quoi toi ? Il te dit quoi le compilo ?

    Pense quand même à mettre les parenthèse qui vont bien dans un soucis de compréhension.


  17. #17
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    mais pour faire des opérations avec une date tu a l'objet Calendar en Java Standard la tu au moins essayer tu fais tout avec
    Oui je confirme !!!! et il y a une FAQ Java qui traite précisément de ton soucis : vérifier qu'une date est valide.
    Je ne te mets pas le raccourci, je te laisse la trouver
    Développeur Java
    Site Web

  18. #18
    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
    Citation Envoyé par Nico02 Voir le message
    Bah ça me parait déjà mieux non ? T'en penses quoi toi ? Il te dit quoi le compilo ?

    Pense quand même à mettre les parenthèse qui vont bien dans un soucis de compréhension.

    compilateur l'a accepté merci beaucoup

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

Discussions similaires

  1. Condition ne marche pas
    Par okoweb dans le forum jQuery
    Réponses: 4
    Dernier message: 01/10/2011, 21h10
  2. [XL-2000] macro copier coller avec condition ne marche pas
    Par antfo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/03/2010, 10h54
  3. [MySQL] condition avec requete qui ne marche pas ..sous ie
    Par esti89 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h53
  4. Image visible sous condition: marche pas !
    Par docjo dans le forum IHM
    Réponses: 7
    Dernier message: 23/04/2008, 23h19
  5. Condition qui ne marche pas
    Par Pierre.g dans le forum C
    Réponses: 5
    Dernier message: 24/08/2006, 03h29

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