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

API standards et tierces Java Discussion :

while (plusieurs conditions) suivi d'un wait


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 60
    Par défaut while (plusieurs conditions) suivi d'un wait
    Bonjour à tous,

    Je développe sur Android mais le problème est un problème de Java en général.
    J'ai un problème que je n'arrive pas à résoudre, et je me demande si le problème en question n'a juste pas de solution en Java!

    Est-il possible en Java d'avoir la structure suivante :

    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
     
    	public synchronized void run() {
    		while(!condition1 || !condition2){
    			try {
    				wait();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
                    // traitement lorsque les deux conditions sont vraies
    	}
     
    	public synchronized void méthode1(params){
    		//traitement qui permet de rendre vraie la première condition
    		notifyAll();
    	}
     
    	public synchronized void méthode2(params) {
    		//traitement qui permet de rendre vraie la seconde condition
    		notifyAll();
    	}
    Autrement dit, vous l'aurez compris, est-il possible d'avoir wait dans une boucle while qui requiert deux conditions?
    Svp, c'est urgent, j'y suis depuis ce matin

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il suffit d'utiliser un ET (&&) au lieu d'un OU (||)...

    a++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 60
    Par défaut
    ça marche peut-être mais ça ne fera pas ce que je veux!
    Il faut que les deux conditions soient vraies pour que je sorte du wait, or avec ce que tu me proposes, dès qu'une des deux conditions est vraie (même si l'autre ne l'est pas), je sors du wait

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Je suis un peu fatigué ces derniers temps... il faut mettre la négation sur tout le bloc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while ( !(condition1 && condition2) )

    a++

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while ( !(condition1 && condition2) )
    ce qui revient au même que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while ( !condition1 || !condition2 )
    et nous revoilà au 1er message

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Et dans les deux cas cela fait ce qui était démandé : sortir de la boucle quand les deux variables "conditions" valent true...

    Donc : quel est le problème ?


    a++

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le plus simple c'est de faire le notify uniquement au moment où les deux conditions sont satisfaites.

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

Discussions similaires

  1. Problème boucle WHILE/WEnd avec plusieurs conditions
    Par Romanaxx dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/12/2013, 15h00
  2. Plusieurs conditions dans un while/wend, possible?
    Par rsoul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2008, 15h10
  3. plusieurs condition dans un while
    Par realkilla dans le forum C#
    Réponses: 4
    Dernier message: 17/05/2008, 16h16
  4. Plusieurs conditions dans un while
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 11/01/2008, 17h44
  5. [Bash] mettre plusieurs conditions dans un while
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 22/07/2007, 22h44

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