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

Langage Java Discussion :

Fonction qui retourne un booléen


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 31
    Points
    31
    Par défaut Fonction qui retourne un booléen
    Bonjour ,

    Hé oui , on ne m' arrete plus , voila un petit Ed me pose encore et toujours un problème.

    Sujet :
    En utilisant une boucle , saisir 5 caractères et donner en résultat un message précisant si ce caractère est majuscule ou non.La fonction utilisée est Majuscule , elle retourne un booléen.

    Pourrais t on m ' aiguiller ??Je pense que dans la fonction je devrai faire un cast du caractère , mais retourner un booléean en résultat je ne vois vraiment pas.

    merci a vous et vive java

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    pour retourner un boolean :
    return true; // Si la condition est vérifiée
    return false; // Si la condition n'est pas vérifiée.

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Au passage, il n'y a pas de fonction en Java, uniquement des méthodes de classe.
    Je ne répondrai à aucune question technique en privé

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    je te conseille de te tourner vers la classe Character et notemment la fonction isUpperCase(char)

    Je pense que l'aiguille est bien tournée

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  5. #5
    Membre habitué Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 151
    Points
    151
    Par défaut une fonction Majuscule! ça existe déja
    tu na pas besoin de te crée une fonction Majuscule ça existe déja. isUpperCase(char c).
    voiçi un bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int i;
    char c;
    for(i =0; i<5 i++)
    {
      System.in.read(c);
      if (isUpperCase(c)) System.out.println("Majuscule");
      else if System.out.println("Miniscule");
    }
    "le temps c'est le meilleur des médécins, peut être aussi le meilleur des assassins" Bernis-Francine

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Bonjour ,

    merci de vos nombreuses réponses , je dois cependant créer cette méthode sans utiliser la classe majuscule et le but de cet ED est d' apprendre a coder les fonctions .

    j ai vraiment une petite ébauche du programme , et je ne sais pas si cela est deja correct.
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    static boolean Majuscule (char c ){
     
    }

  7. #7
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    Encore une fois:
    Au passage, il n'y a pas de fonction en Java, uniquement des méthodes de classe.
    Si tu ne veux pas utiliser ce qui existe déjà, le code ASCII (la valeur décimale) d'une majuscule est compris entre 65 et 90 (inclus). C'est une piste je crois.
    Tu n'as qu'à retourner true si ton caractère est dans cet intervalle et false sinon.
    SCJP 5 | CAPM

  8. #8
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Ta définition est presque bonne. Il manque le mot-clef permettant de définir la visibilité de la fonction (private/public/protected).
    Remarque (en parlant de majuscules) : les règles du langage veulent que les noms de méthode commencent par une MINUSCULE !

  9. #9
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    Il manque le mot-clef permettant de définir la visibilité de la fonction (private/public/protected)
    Pas obligatoire. Sa définition correspond à la visibilité default (visibilité de package) pour laquelle justement on n'indique aucun modificateur d'accès.
    Après c'est lui qui sait exactement ce qu'il veut faire.
    SCJP 5 | CAPM

  10. #10
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Bonjour ,

    Je fais en fonction des cours du prof pour tout ce qui es d ordre syntaxique et pour appeler la méthode (la prof appele cela une fonction).
    Je n ' y arrive pas , comment retourner un booléen ; voila ce que j' ai réalise :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    public class Majuscule {
     
        /** Creates a new instance of Majuscule */
        static boolean Majuscule (char c ) {
     
           boolean majuscule ;
           majuscule = false ;
     
     
           if ( (((int) c <= 90) || ((int)  c >=65) )) {
               System.out.println ( "ce caractére est une majuscule ");
               majuscule = true ;
     
           } else  {
               if (((int )c >=97) || ((int)c <= 122 )){
                   System.out.println ("Ce caractère n ' est pas une majuscule ");
                   majuscule = false ;
     
               }
     
           }
     
            return majuscule ;
     
        }
     
        public static void main (String  [] args ){
            System.out.println ("Debut - Execution");
            System.out.println ("Fonction est  \" majuscule\"  "   );
     
            char c ;
     
            for (int i = 1 ; i <= 5 ; i++){
                System.out.println ("Saisir le caractère " + i );
                c = Lire.caractere();
     
                System.out.println ( Majuscule (c));
     
            }
     
        }
     
    }
    voila ce que le programme doit faire à l 'exécution :
    Saisir un caractère 1 :a
    ce caractère n' est pas majuscule

    saisir un caractère 2 :B
    ce caractère est majuscule

    ...........


    merci

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    il faut utiliser l'opérateur && (et) et non || (ou), ce qui donne :

    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
    22
    23
    24
     
     /** Creates a new instance of Majuscule */
        static boolean Majuscule (char c ) {
     
           boolean majuscule ;
           majuscule = false ;
     
     
           if ( (((int) c <= 90) && ((int)  c >=65) )) {
               System.out.println ( "ce caractére est une majuscule ");
               majuscule = true ;
     
           } else  {
               if (((int )c >=97) && ((int)c <= 122 )){
                   System.out.println ("Ce caractère n ' est pas une majuscule ");
                   majuscule = false ;
     
               }
     
           }
     
            return majuscule ;
     
        }
    ce qui peut etre fait en 1 ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    static boolean estUneMajuscule(char c) {
       return ( ((int) c <= 90) && ((int)  c >=65)) );
    }

  12. #12
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    ou mieux si tu veux utiliser ce qui a déjà été fait (et ne pas réinventer la roue) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    static boolean estUneMajuscule(char c) {
       return Character.isUpperCase(c);
    }
    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 47
    Points : 56
    Points
    56
    Par défaut
    Enfin, pour respecter l'esprit Objet, il vaut mieux faire comme ca :

    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
     
    class MonCaractere {
       char caractere;
     
       //constructeur
       MonCaractere(char c) {
           this.caractere = c;
       }
     
       //test si majuscule
       public boolean estUneMajuscule() {
          return ( ((int) caractere <= 90) && ((int)  this.caractere >=65)) );
       }
     
       //main
       public static void main(String[] args) {
           MonCaractere mc = new MonCaractere('A');
           System.out.println(mc.estUneMajuscule);
       }
    }
    en esperant ne pas avoir fait de fautes d'orthographe

  14. #14
    Nouveau membre du Club
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Bonjour ,
    je tiens tout d' abord à remercier les nombreux internautes pour leur aide.

    je ne dois utilisé aucune classe propre à java , les notions de constructeur etc.... , n ont pas été encore vus en cours.Je dois me limiter .

    En Fait , il faudrait me donner un exemple tout con qui retourne un booléen , mais un truc vraiment con

    Ben revenons à nos moutons

    Voici un résultat d' Execution :

    Saisir cinq caractères

    Saisir un caractère 1 :a
    ce caractère n' est pas majuscule

    saisir un caractère 2 :B
    ce caractère est une majuscule

    Saisir un caractère 1 : i
    ce caractère n' est pas majuscule

    saisir un caractère 2 :F
    ce caractère est une majuscule

    Saisir un caractère 1 :z
    ce caractère n' est pas majuscule

    Bon voila ou j' en suis :

    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
    static boolean Majuscule (char c ) {
     
          if ( (((int) c <= 90) || ((int)  c >=65) )) {
               System.out.println ( "ce caractére est une majuscule ");
              return true  ;
     
           } else  {
               if (((int )c >=97) || ((int)c <= 122 )){
                   System.out.println ("Ce caractère n ' est pas une majuscule ");
                  return false;
               }
     
           }
        return false ;
        }
    Cela ne fonctionne pas , en fait je me demande quel résultat je dois renvoyer par l' instruction return.

    I am very hill of JAVA
    thanks

  15. #15
    Membre éclairé

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Points : 803
    Points
    803
    Par défaut
    Bonjour,
    Premierement et comme cela t'a déja été signalé, tu doit utilisé l'opérateur logique "ET" dans ton test soit remplacer || par &&

    ensuite : la partie en rouge est totalement inutile car si tu n'est pas dans le premiers cas tu es forcement dans le second :

    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
    static boolean Majuscule (char c ) {
            
          if ( (((int) c <= 90) && ((int)  c >=65) )) {
               System.out.println ( "ce caractére est une majuscule ");
              return true  ;
               
           } else  {
               //if (((int )c >=97) && ((int)c <= 122 )){
                   System.out.println ("Ce caractère n ' est pas une majuscule ");
                  return false;
               }
             
           }
        return false ;
        }
    troisieme remarque l'interet de retourner une valeur dans une méthode c'est de pouvoir la traiter ailleurs personellement je ferai ca meme si je suis conscient que c'est inutile c'est juste histoire de traiter la donnée ailleurs. Si tu ne te sert pas de la donnée que tu renvoies ca ne sert a rien de la renvoyer il vaut mieux mettre le mot-clé void dans la def de ta méthode et rien renvoyer du tout...

    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
    22
    23
    24
     
     
    public class Majuscule {
     
    static boolean Majuscule (char c ) {
     
          if ( (((int) c <= 90) || ((int)  c >=65) )) {
              return true  ;
           } else  {
                  return false;
               }
           }
        }
    public static void main(String[] args) {
    [.....]//traitement préliminaires (recup des char, etc...)
    boolean b;
        b=Majuscule(char c)
        if (b){
                 System.out.println ( "ce caractére est une majuscule ");
        }
        else {  
                 System.out.println ("Ce caractère n ' est pas une majuscule ");
        }
    }
    "La seule chose dont je sois certain, c'est que je doute"
    j'ai cassé ma boule de cristal veuillez être clair et précis dans vos propos
    compilateur - 1 nayah - 0
    PS : je suis un

  16. #16
    Membre confirmé Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Points : 519
    Points
    519
    Par défaut
    Citation Envoyé par racoboss Voir le message
    Je fais en fonction des cours du prof pour tout ce qui es d ordre syntaxique et pour appeler la méthode (la prof appele cela une fonction).
    Je n ' y arrive pas , comment retourner un booléen ; voila ce que j' ai réalise :
    Je crois que dans ce cas tu devrais appeler manuellement le Garbage Collector Pour qu'il s'occupe de ton prof.

  17. #17
    Membre éclairé

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Points : 803
    Points
    803
    Par défaut
    Autant pour moi j'ai fais une petite erreur voici la réponse modifié ca devrai marcher comme ca...

    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
    22
    public class Majuscule {
     
    static boolean Majuscule (char c ) {
     
          if ( (((int) c <= 90) && ((int)  c >=65) )) {
              return true  ;
           } else  {
                  return false;
               }
           }
        }
    public static void main(String[] args) {
    [.....]//traitement préliminaires (recup des char, etc...)
        boolean b;
        b=Majuscule(char c)
        if (b){
                 System.out.println ( "ce caractére est une majuscule ");
        }
        else {  
                 System.out.println ("Ce caractère n ' est pas une majuscule ");
        }
    }
    "La seule chose dont je sois certain, c'est que je doute"
    j'ai cassé ma boule de cristal veuillez être clair et précis dans vos propos
    compilateur - 1 nayah - 0
    PS : je suis un

Discussions similaires

  1. Fonction qui retourne plusieurs valeurs !
    Par casafa dans le forum C++
    Réponses: 20
    Dernier message: 23/04/2014, 16h56
  2. Test d'une fonction qui retourne un booléen
    Par Loko dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/10/2011, 20h40
  3. Créer une fonction qui retourne un booléen
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2008, 23h22
  4. [JUnit] Comment tester une fonction qui retourne un booléen
    Par Raiden1234 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 15/12/2007, 19h29
  5. Réponses: 14
    Dernier message: 09/04/2004, 13h44

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