Demande de delocage conversion String en booleen

Demande de delocage conversion String en booleen - Java - Programmation

Marsh Posté le 10-11-2017 à 20:00:51    

Bonjour je suis debutant en Java et je viens de suivre un cours par distance sur les String.

 

Actuellement je suis en train de faire un exercice qui n'a pas de corriges.

  


public static boolean continuer (String msgInvite){
        String saisie;

 

       boolean continuer;
        continuer = true;
       
       

 

       System.out.println(msgInvite);
       
        saisie = Clavier.lireString();

 

       continuer = saisie.equalsIgnoreCase("oui" );
        continuer = saisie.equalsIgnoreCase("non" );
        continuer = saisie.equalsIgnoreCase("o" );
        continuer = saisie.equalsIgnoreCase("n" );

 

       int strlen;
        strlen=saisie.length();
       
       

 

       do {
            saisie = Clavier.lireString();  
           
            do  {
                System.out.println ("ERREUR! La reponse doit etre oui, non , o ou n" );
                saisie = Clavier.lireString();
            } while (strlen > 3 || strlen == 2 );

 

           continuer = !"oui".equals(saisie);
            continuer = !"non".equals(saisie);
            continuer = !"o".equals(saisie);
            continuer = !"n".equals(saisie);
           
            System.out.println ("ERREUR! La reponse doit etre oui, non , o ou n" );

 

           

 

       } while (continuer = false );
       
        return continuer;
    }

  


Message édité par dmayorie le 11-11-2017 à 23:56:18
Reply

Marsh Posté le 10-11-2017 à 20:00:51   

Reply

Marsh Posté le 10-11-2017 à 22:23:59    

C'est mieux d'utiliser les boutons "code" et "citation" du forum que de colorer le texte.
 
Je ne "parle" pas le Java, mais ceci

Citation :

 continuer = saisie.equalsIgnoreCase("oui" );
        continuer = saisie.equalsIgnoreCase("non" );
        continuer = saisie.equalsIgnoreCase("o" );
        continuer = saisie.equalsIgnoreCase("n" );

me paraît douteux, la variable ne va garder que le résultat du dernier appel (avec "n" ). Aussi ceci

Citation :

while (continuer = false );

est une erreur ultra-classique, tu confonds '=' pour assigner une valeur à une variable avec '==' pour faire une comparaison.

Reply

Marsh Posté le 11-11-2017 à 02:08:16    

Par desespoir et a bout d'idees, je propose ceci et je sais que c'est du n'importe quoi :

 


Citation :

public static boolean continuer (String msgInvite){
        String saisie;

 

       boolean continuer;
        continuer = true;

 

       System.out.println(msgInvite);
        saisie = Clavier.lireString();
       
        // Dans cette partie, la variable ne va garder que
        //le résultat du dernier appel (avec "n" ).
        // Je ne vois pas comment faire autrement.
        continuer = saisie.equalsIgnoreCase("oui" );
        continuer = saisie.equalsIgnoreCase("non" );
        continuer = saisie.equalsIgnoreCase("o" );
        continuer = saisie.equalsIgnoreCase("n" );

 

       int strlen;
        strlen=saisie.length();

 

       do {
            saisie = Clavier.lireString();
           
            if (continuer == !"oui".equals(saisie) && continuer == !"non".equals(saisie)
            && continuer == !"o".equals(saisie) && continuer == !"n".equals(saisie)) {
                System.out.println ("ERREUR! La reponse doit etre oui, non , o ou n" );
            }
           
            if (strlen > 3 || strlen == 2) {
                System.out.println ("ERREUR! La reponse doit etre oui, non , o ou n" );
                saisie = Clavier.lireString();
            }
        } while (continuer == false);
        return continuer;
    }



Message édité par dmayorie le 11-11-2017 à 02:12:36
Reply

Marsh Posté le 11-11-2017 à 18:14:30    

Si jecomprends bien,  le equalsIgnoreCase( ) fait en meme un equal et un ignore case a un String. J'ai tjs assume que equalsIgnoreCase( ) etait un String signifiait ignorer Maj et Min. Et que le boolean equal(String s) signifiait respecter la longueur du String.

Reply

Marsh Posté le 11-11-2017 à 18:46:10    

J'apprends.
 
 
Par contre, une chose que je souhaiterais ajouter : un message de FIN DE PROGRAMME" quand je saisie non. Je fais comment !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed