Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Problème boucle while en java



  1. #1
    thundertom

    Problème boucle while en java


    ------

    Bonjour,

    J'ai un petit soucis avec une boucle while dans un petit programme en java. J'entre un char au clavier et tant que ce char n'est pas p ou i, je souhaite rester dans ma boucle. le seul soucis c'est que même en entrant p ou i au clavier je ne sors pas de ma boucle. Bien que la saisie clavier fonctionne très bien.
    Ma boucle est la suivante:
    while((parity!='p')||(parity!= 'i'))

    Alors est-ce qu'il y à une erreur dans le test de ma boucle?
    Pour info, j'utilise JCreator pour mes programmes.

    Voilà je remercie d'ores et déjà les personne qui prendront le temps de m'aider.

    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    poly71

    Re : Problème boucle while en java

    Bonjour,

    Je ne vois pas de problème dans ta condition, par contre, il faut regarder du côté de la façon dont la variable parity (de type char) est renseignée par ce que tu frappe au clavier.

    Par ailleurs, ne faut-il pas taper sur "entrée" après avoir frappé ton caractère ?

  5. #3
    invite6754323456711
    Invité

    Re : Problème boucle while en java

    Bonjour,

    Un petit exemple de code
    Code:
    import java.util.Scanner;
    public class HelloWorldApp {
        static char carac;
        static Scanner sc;
        static String str;
        public static void main(String[] args) {
            while (carac != 'p') {
                System.out.println("Saisissez une lettre :");
                sc = new Scanner(System.in);
                str = sc.nextLine();
                carac = str.charAt(0);
                System.out.println("Vous avez saisi le caractère : " + carac);
            } 
            System.out.println("fin de boucle");
        }
    }
    Comment le fait remarqué poly71 il faut taper sur entrée après avoir saisi le caractère.

    Patrick

  6. #4
    el_pulpo

    Re : Problème boucle while en java

    Essayez le && au lieu du ||

  7. A voir en vidéo sur Futura
  8. #5
    thundertom

    Re : Problème boucle while en java

    J'ai remarqué que je m'éttais trompé au niveau du || je l'ai remplacé par un &&

    Dans ma boucle j'avait seulement: parity=clavier.next()charAT(0) ;

    Et bien entendu je presse entrer pour "valider" mon caractère. Donc avec cette boucle, meme en entrant p, je ne sortais pas de ma boucle. Mais en ajoutant une ligne de plus à l'interieur de ma boucle, miracle ça fonctionne. Don visiblement mon compilateur n'est pas daccord qu'il n'y ait qu'une seule ligne de code à l'intérieur d'une boucle.

  9. #6
    whoami

    Re : Problème boucle while en java

    Bonjour,
    Citation Envoyé par thundertom Voir le message
    J'ai remarqué que je m'éttais trompé au niveau du || je l'ai remplacé par un &&

    Dans ma boucle j'avait seulement: parity=clavier.next()charAT(0) ;

    Et bien entendu je presse entrer pour "valider" mon caractère. Donc avec cette boucle, meme en entrant p, je ne sortais pas de ma boucle. Mais en ajoutant une ligne de plus à l'interieur de ma boucle, miracle ça fonctionne. Don visiblement mon compilateur n'est pas daccord qu'il n'y ait qu'une seule ligne de code à l'intérieur d'une boucle.
    Ça, c'est du grand n'importe quoi.

    Montre-nous les 2 versions successives exactes de ton code.

  10. Publicité
  11. #7
    thundertom

    Re : Problème boucle while en java

    Cette version fonctionne:

    while((parity!='p')&&(parity!= 'i')&&(parity!='P')&&(parity!= 'I'))
    {
    System.out.println("Veuillez entrer le type de paritée que vous souhaitez (P pour parire et I pour impaire)");
    parity=clavier.next().charAt(0 );
    }

    Cette version ne fonctionne pas:

    while((parity!='p')&&(parity!= 'i')&&(parity!='P')&&(parity!= 'I'))
    {
    parity=clavier.next().charAt(0 );
    }

  12. #8
    Jack
    Modérateur

    Re : Problème boucle while en java

    Utilise la balise "code" pour présenter du code.

    Sinon, je ne comprends pas comment tu peux faire un while qui teste ta variable parity alors que celle-ci n'a pas encore été affectée d'une valeur au préalable.

    A+

  13. #9
    thundertom

    Re : Problème boucle while en java

    Hum oui désolé pour le code c'est que en mettant seulement réponse rapide je n'avait pas la balise disponible et je n'ai pas pensé à allé voir plus loin.
    Bien entendu lors de ma déclaration de variable, je l'initialise à une "valeur" qui n'est ni 'p',ni 'i'.
    Je vais vite contrôler si cette affectation n'est pas mal faite
    Dernière modification par thundertom ; 23/10/2009 à 18h00.

Discussions similaires

  1. Langage C : problème dans une boucle
    Par gizmo2937 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 25/05/2009, 11h48
  2. Matlab : Problème de format dans boucle
    Par jackybarjo dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 03/04/2008, 12h15
  3. probleme d'indexage de boucle for avec matlab
    Par RBM dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 23/10/2007, 03h32
  4. Problème Langage C Sorte de Boucle
    Par L'Etudiant dans le forum Logiciel - Software - Open Source
    Réponses: 19
    Dernier message: 18/01/2006, 21h17
  5. Probleme de boucle FOR-Next
    Par zanzeoo dans le forum Électronique
    Réponses: 8
    Dernier message: 17/08/2004, 13h25
Découvrez nos comparatifs produits sur l'informatique et les technologies.