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 :

[débutant] Méthode appelée dans le même programme


Sujet :

Langage Java

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [débutant] Méthode appelée dans le même programme
    Bonjour tout le monde,

    J'ai un petit programme qui me dit si un mois comprend, 28, 29, 30 ou 31 jours.

    Il y'a une partie de ce programme que je ne comprend pas (c'est l'appelle d'une fonction dans le programme même).

    Donc, ici, nous avons le début du programme :

    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
    // nombre de jours du mois
     // avec une méthode pour déterminer si l'année est bissextile
     
     public class Exercice08
     {
     public static void main(String[] args)
     {
     int annee, mois;
     System.out.println("Donnez une annee: ");
     annee = Clavier.lireInt();
     System.out.println("Donnez un numéro de mois: ");
     mois = Clavier.lireInt();
     switch(mois)
     {
     case 1:
     case 3:
     case 5:
     case 7:
     case 8:
     case 10:
     case 12: System.out.println("31 jours");break;
     case 4:
     case 6:
     case 9:
     case 11: System.out.println("30 jours);break;
    Jusque là, ça va, no problem.

    C'est après que ça se complique pour moi, quand on doit vérifier si l'année est bissextile ou non (par rapport au mois de février) :

    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
    case 2:
     {
     if (anneeBissextile(annee))
     System.out.println("29 jours");
     System.out.println(anneeBissextile);
     else
     System.out.println("28 jours");
     }
     }
     }
     static boolean anneeBissextile(int an)
     {
    if ((an % 4) != 0)
     {
     return false;
     }
     else
     {
     if (((an % 400) == 0 ) || ((an % 4) == 0) && (an % 100 != 0))
     return true;
     else
     return false;
     }
     }
     }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (anneeBissextile(annee))
    ici, je présume qu'on appelle la méthode nommée anneeBissextile et qu'on lui donne l'argument annee ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     static boolean anneeBissextile(int an)
    Ce que je ne comprends pas du tout c'est d'où vient ce "int an" et à quoi il sert !

    Je vous remercie d'avance pour l'aide que vous m'apportez et je vous souhaîtes de très bonnes fêtes

    beegees

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    C'est assez simple, en fait tu indiques que ta fonction va recevoir un entier (ici l'année). Donc dans ta fonction tu indique le type du paramètre ainsi que son nom.

    int -> correspond à integer
    an -> variable qui se nomme an et dont tu peux récupérer sa valeur dans ta fonction.

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour Tazmania,

    Merci pour ta réponse.

    Donc si j'ai bien compris,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (anneeBissextile(annee))
    appelle la fonctionne anneeBissextile et lui donne comme argument annee.

    L'année est introduite par l'utilisateur.

    Donc "an" reprend l'année ? Suis-je dans le bon ?

    Merci encore.

    beegees

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 129
    Points : 81
    Points
    81
    Par défaut
    Oui dans ton cas lorsque tu appelles la méthode anneeBissextile, an est initialisé avec une copie de la valeur de annee.

    Donc dans ta methode anneeBissextile tu manipules lannée en manipulant la variable an.

    Attention que comme c'est une copie de année, si tu modifies an tu ne modifies pas annee ;-)

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    C'est super sympa ptr83,

    Merci pour ta réponse très rapide et très claire.

    Très bonne fin d'année.

    beegees

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    C'est sa !!
    Si on reprend ton programme :

    Une fenêtre va s'afficher demander à l'utilisateur de saisir une année
    System.out.println("Donnez une annee: ");
    L'utilisateur va saisir une année avec cette instruction :
    annee = Clavier.lireInt();
    annee a été préalablement défini en int
    int annee;
    Sachant que tu passes par une fonction pour savoir si l'année est bissextile, tu dois donner à ta fonction anneebissextile, l'année saisie par l'utilisateur d'où
    Lors de la déclaration (ou prototype) de ta fonction
    Tu dois mettre le type de retour (ici boolean)
    Le nom de la fonction (ici anneebissextile)
    Puis le type et le nom des paramètre passés à ta fonction.

    Ici il n'y a qu'un seul argument : l'année, on a donc dit que l'année était de type int donc le type de l'argument est int. Après tu choisis un nom de variable (ici an)

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Tazmania,

    Une meilleure explication que la tienne, ça n'existe pas

    Un super grand merci à toi.

    Je vais imprimer ton message et le mettre de côté pour mon examen qui se déroulera en Janvier 2007.

    Merci encore.

    beegees

  8. #8
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Malgré vos nombreuses réponses, j'ai quand même une dernière question concernant ce problème.

    Pourquoi devons nous mettre une { entrante et fermante entre

    {
    if (anneeBissextile(annee))
    System.out.println("29 jours");
    System.out.println(anneeBissextile);
    else
    System.out.println("28 jours");
    }

    En général, on ne met pas de {} avant un if mais juste après if (pas obligatoire si nous n'avoins qu'une seule instruction).

    Merci
    beegees

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    static boolean anneeBissextile(int an)
    {
    if ((an % 4) != 0)
    {
    return false;
    }
    else
    {
    if (((an % 400) == 0 ) || ((an % 4) == 0) && (an % 100 != 0))
    return true;
    else
    return false;
    }
    }

    Ces accolades permettent de délimiter ta fonction.
    Après la déclaration de ta fonction tu ouvres une accolade.
    Puis tu écris ton code.
    Une fois celui-ci terminé, tu refermes ton accolade.

  10. #10
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par tazmania
    static boolean anneeBissextile(int an)
    {
    if ((an % 4) != 0)
    {
    return false;
    }
    else
    {
    if (((an % 400) == 0 ) || ((an % 4) == 0) && (an % 100 != 0))
    return true;
    else
    return false;
    }
    }

    Ces accolades permettent de délimiter ta fonction.
    Après la déclaration de ta fonction tu ouvres une accolade.
    Puis tu écris ton code.
    Une fois celui-ci terminé, tu refermes ton accolade.
    Je voudrais pas paraître tatillon, mais je vais l'être quand même...
    En POO on ne parle pas de fonction ou procédure, mais uniquement de méthode.

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par thibaut
    Je voudrais pas paraître tatillon, mais je vais l'être quand même...
    En POO on ne parle pas de fonction ou procédure, mais uniquement de méthode.
    En effet, merci pour ce rappel

  12. #12
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci Tazmania,

    Bonne fêtes de fin d'année.

    beegees

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par beegees
    Merci Tazmania,

    Bonne fêtes de fin d'année.

    beegees
    De rien, pas de souci !!!
    Bonne fêtes de fin d'année à toi aussi

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/06/2008, 10h03
  2. [C#] [débutant] plusieurs panels dans la même form
    Par fsutter dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/05/2007, 17h24
  3. Réponses: 1
    Dernier message: 26/03/2007, 11h27
  4. [débutant] plusieurs panels dans une même Jframe
    Par djerbafr dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/02/2007, 16h11
  5. Réponses: 2
    Dernier message: 05/01/2006, 14h17

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