Partage
  • Partager sur Facebook
  • Partager sur Twitter

Impossible de rentrer dans une boucle

    20 mai 2019 à 13:54:22

    Bonjour,

    j'essaye de créer une boucle mais impossible de la démarrer,

    le code:

    import java.util.Scanner;
    
    
    public class Condition {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    char reponse;
    reponse = 'O';
    while (reponse=='O');
    {
    	Scanner question = new Scanner(System.in);
    	System.out.println("Donnez un prénom : ");
    	String prenom;
    	prenom = question.nextLine();
    	System.out.println(" Bonjour "+ prenom +", Comment vas-tu ?");
    	System.out.println(" Voulez vous rester ? (Oui/Non) ");
    	reponse= question.nextLine().charAt(0);
    }
    System.out.println("Au revoir alors");
    }
    }
    

    Pareil si je met la variable reponse en String au lieu de char 

    import java.util.Scanner;
    
    
    public class Condition {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    String reponse;
    reponse = "Oui";
    while (reponse=="Oui");
    {
    	Scanner question = new Scanner(System.in);
    	System.out.println("Donnez un prénom : ");
    	String prenom;
    	prenom = question.nextLine();
    	System.out.println(" Bonjour "+ prenom +", Comment vas-tu ?");
    	System.out.println(" Voulez vous rester ? (Oui/Non) ");
    	reponse= question.nextLine();
    }
    System.out.println("Au revoir alors");
    }
    }
    

    J'arrive pas à trouver mon erreur, je me suis relu plusieurs fois donc si quelqu'un peut m'éclairer ça m'aiderait beaucoup

    Sachant que quand j'utilise une variable numérique ça fonctionne, je comprend pas 



    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2019 à 13:59:56

      Salut, il te renvoie une erreur? Si oui il faudrait que tu la poste avec ton message, c'est toujours mieux.

      Concernant ton problème, je pense (normalement), que ton problème vient de ta condition car tu veux comparer une chaine de caractère à quelque chose.

      Le "==" est utilisé pour exprimer l'égalité dans une condition, comme tu l'as dit, NUMERIQUE.

      Pour ton problème, vas faire une recherche sur Internet et jeter tes 2 yeux sur "equals()" ;)

      -
      Edité par Romain29r 20 mai 2019 à 14:00:48

      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2019 à 14:12:46

        Romain29r a écrit:

        Salut, il te renvoie une erreur? Si oui il faudrait que tu la poste avec ton message, c'est toujours mieux.

        Concernant ton problème, je pense (normalement), que ton problème vient de ta condition car tu veux comparer une chaine de caractère à quelque chose.

        Le "==" est utilisé pour exprimer l'égalité dans une condition, comme tu l'as dit, NUMERIQUE.

        Pour ton problème, vas faire une recherche sur Internet et jeter tes 2 yeux sur "equals()" ;)

        -
        Edité par Romain29r il y a 3 minutes


        Salut, merci pour ta réponse

        En fait je suis sur Eclipse et non il renvoie aucune erreur, quand je démarre le programme, la console reste simplement vide

        Et le truc c'est que sur le cours de Java on nous apprend à utiliser " == "

        Je suis allé voir ce que c'était equals et effectivement ça fonctionne maintenant, merci pour la solution

        • Partager sur Facebook
        • Partager sur Twitter
          20 mai 2019 à 14:16:37

          Ca me parait bizarre qu'ils disent d'utiliser le "==" pour comparer 2 String :/

          Content que ça fonctionne pour toi! :)

          • Partager sur Facebook
          • Partager sur Twitter
            21 mai 2019 à 16:07:54

            Hello,

            Tout d'abord, on peut comparer des String avec ==. C'est juste pas du tout recommandé, il est préférable d'utiliser la fonction Equals comme expliqué plus haut. Essaye de prendre les bonnes habitudes dès le début, je te conseille donc d'utiliser cette fonction dans l'autre sens.

            "oui".equals(reponse)

            L'utilisation de cette manière va permettre d'éviter les erreurs dans le cas où ta variable reponse est nulle :)

            Deuxièmement, ton problème ne vient pas de ta condition mais de la boucle. En effet, à la ligne 13 tu termines par un ; en l'enlevant cela devrait pouvoir fonctionner correctement.

            -
            Edité par Shelemond 21 mai 2019 à 16:08:19

            • Partager sur Facebook
            • Partager sur Twitter
              21 mai 2019 à 16:19:31

              Shelemond a écrit:

              Hello,

              Tout d'abord, on peut comparer des String avec ==. C'est juste pas du tout recommandé, il est préférable d'utiliser la fonction Equals comme expliqué plus haut. Essaye de prendre les bonnes habitudes dès le début, je te conseille donc d'utiliser cette fonction dans l'autre sens.

              "oui".equals(reponse)

              L'utilisation de cette manière va permettre d'éviter les erreurs dans le cas où ta variable reponse est nulle :)

              Deuxièmement, ton problème ne vient pas de ta condition mais de la boucle. En effet, à la ligne 13 tu termines par un ; en l'enlevant cela devrait pouvoir fonctionner correctement.

              -
              Edité par Shelemond il y a 9 minutes

              Exact, je n'avais pas vu le ";", mais ça semble fonctionner comme le montre sa capture d'écran, c'est étrange, la magie de l'informatique sans doute! ;)

              • Partager sur Facebook
              • Partager sur Twitter
                23 mai 2019 à 9:15:34

                Shelemond a écrit:

                Hello,

                Tout d'abord, on peut comparer des String avec ==. C'est juste pas du tout recommandé, il est préférable d'utiliser la fonction Equals comme expliqué plus haut. Essaye de prendre les bonnes habitudes dès le début, je te conseille donc d'utiliser cette fonction dans l'autre sens.

                "oui".equals(reponse)

                L'utilisation de cette manière va permettre d'éviter les erreurs dans le cas où ta variable reponse est nulle :)

                Deuxièmement, ton problème ne vient pas de ta condition mais de la boucle. En effet, à la ligne 13 tu termines par un ; en l'enlevant cela devrait pouvoir fonctionner correctement.

                -
                Edité par Shelemond 21 mai 2019 à 16:08:19

                Ah oui  j'avais pas fais gaffe, merci tout s'explique

                Romain29r a écrit:

                Shelemond a écrit:

                Hello,

                Tout d'abord, on peut comparer des String avec ==. C'est juste pas du tout recommandé, il est préférable d'utiliser la fonction Equals comme expliqué plus haut. Essaye de prendre les bonnes habitudes dès le début, je te conseille donc d'utiliser cette fonction dans l'autre sens.

                "oui".equals(reponse)

                L'utilisation de cette manière va permettre d'éviter les erreurs dans le cas où ta variable reponse est nulle :)

                Deuxièmement, ton problème ne vient pas de ta condition mais de la boucle. En effet, à la ligne 13 tu termines par un ; en l'enlevant cela devrait pouvoir fonctionner correctement.

                -
                Edité par Shelemond il y a 9 minutes

                Exact, je n'avais pas vu le ";", mais ça semble fonctionner comme le montre sa capture d'écran, c'est étrange, la magie de l'informatique sans doute! ;)



                Ouais bizarre j'ai juste changé l'equals et ça a fonctionné malgré l'erreur :)

                • Partager sur Facebook
                • Partager sur Twitter

                Impossible de rentrer dans une boucle

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown