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

avec Java Discussion :

Méthode/ fonction avec un String comme "return"


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Méthode/ fonction avec un String comme "return"
    Bonjour,

    Je tente de terminer un exercice JAVA. Mais je coince fortement sur un problème de méthode et de string. Il s'agit de calculer la date de paques.
    J'ai des erreurs sur le string pour ma méthode afficheDate. Je ne vois pas comment faire. A partir de la ligne 30 du code.
    J'ai aussi dans cette même méthode un problème avec la valeur j "return"ée dans la méthode précédente. Je crois que ma valeur passe pas.
    Quelqu'un saurait-il m'expliquer ce qui cloche?

    Je vous remercie d'avance pour vos idées, vos conseils voir vos certitudes ;-)
    D.

    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
    44
    45
    46
    47
    import java.util.Scanner;
     
    public class Paques {
        private final static Scanner clavier = new Scanner(System.in);
        static int demanderAnnee(int y){    
            do {
                System.out.println("Entrez une annee (1583-4000) :");
                y = clavier.nextInt();
                } while ((y < 1583) || (y > 4000));
                return y;
            }
        static int datePaques(int j, int y, int s, int p, int q, int m, int n, int d, int e){
            y = demanderAnnee(y);
            s = y / 100;
            p = ((13 + 8) * s) / 25;
            q = s / 4 ;
            m = (15 - p + s -q)%30;
            n = (4 + s -q)%7;
            d = ( (m + (19 * y%19) ) )%30;
            e = (2 * (y%4) + 4 * (y % 7) + 6 * d + n) % 7;
            j = e+d+22;
                if (((e == 6) && (d == 29)) || ((e == 6) && (d == 28) && (11*(m+1)%30 < 19))){
                    j = j - 7;
                }
                if (j > 31){
                    return (j - 31);
                } else
                return j;
            }
        static String afficheDate(int mois){
                String[] mars = {"mars"};
                String[] avril = {"avril"};        
                if (j > 21 && j<56 && j<=31){
                    return String[] mars;
                }
                if (j > 21 && j<56 && j>=32){
                    return String[] avril;
                }
        }
      //Afficher résultats
          public static void main(String[] args){
          demanderAnnee(y);
          afficheDate(mois);
          datePaques();
          System.out.println("Date de Paques en " + demanderAnnee() + " : " + datePaques() + " " + afficheDate());
          }
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Quelque question qui t'aiderons à trouver.

    Pourquoi mars et avril sont de type String[] (tableau de chaines) et pas String (chaine)?
    C'est censé faire quoi selon toi ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci d'avoir répondu si rapidement. C'est cool.

    A dire vrai j'avais tenté ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    static void afficheDate(String mois){		
    			if (j > 21 && j<56 && j<=31){
    				mois = "mars";
    			}
    			if (j > 21 && j<56 && j>=32){
    				mois = "avril";
    			}
    			return mois;
    Et j'ai eu ce message d'Eclipse: et comme il me signalait une erreur de syntaxe "]" j'ai cru que je devais ajouter []. Mais comme tu me l'as fait remarquer, j'ai créer un tableau qui ne réseout en rien mon problème.

    Multiple markers at this line
    - Syntax error on token "]", :: expected after this token
    - The target type of this expression must be a functional
    interface
    - Line breakpointaques [line: 32] - afficheDate(String)


    Pour tes questions:
    1. En effet, mars et avril sont bien des string et non des tableaux.
    2. retourner la référence du tableau String[] mars? qui est mars. C'est du moins ce que j'espérais...

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    quant tu retourne une valeur c'est

    return <valeur>


    exemples:

    return "Bonjour"
    return -1;
    return mois;

    Il n'est pas question de préciser un type lors du return.

    Ton message d'erreur indique que t'as ouvert quelque part dans ton code un tableau, via le crochet ouvrant [ mais tu ne l'a pas fermer. Du coup le compilateur te dit qu'il attends le crochet fermant.

    Enfin, le code que tu donne n'est pas très logique. Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (j > 21 && j<56 && j<=31){
    C'est quoi ce j? Il viens d'où? Il n'est pas déclaré dans la méthode? De plus, si j<=31, je pense qu'on peux dire sans l'ombre d'un doute que j<56, du coup pourquoi tester 56?


    Enfin, faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static void afficheDate(String mois){		
    				mois = "mars";
    Ne changera rien du tout pour l'appelant. Tu ne fais qu'attribuer une valeur à la variable locale appelée mois. Ca ne change pas la valeur que l'appelant a passé en paramètre. Tous les paramètres de méthode en java sont passé par copie.

Discussions similaires

  1. Appeller une fonction avec un string
    Par Thibqult dans le forum Général Python
    Réponses: 26
    Dernier message: 18/12/2011, 20h46
  2. Appeler une fonction avec un string
    Par wazzzzza dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 01/02/2011, 12h56
  3. Appel de fonction avec un string
    Par james_kirk dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/04/2008, 04h39

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