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 :

Recherche d'erreur


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Par défaut Recherche d'erreur
    Bonjour,

    Je débute en Java, et j'ai un exercice à rendre pour rechercher le plus grand de 3 entiers.
    J'ai rédigé une partie de mon code, mais je bute pour compiler car la console Dos me renvoie l'info "Exo4.java:26: error: missing return statement }"
    Pourriez-vous svp jeter un oeil et me dire quelle est mon erreur? Je doute que ce soit un } car ils y sont tous...
    Ca fait deux jours que je cherche, mais rien n'y fait... :-(

    PS: La classe Terminal est la classe fournie par notre prof et fonctionne!

    Et le code:
    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
    public class Exo4 {
     
    	public static void main (String[] args) {
    		Terminal.ecrireString("Saisir le premier entier:");
    		final int a = Terminal.lireInt();
     
    		Terminal.ecrireString("Saisir le second entier:");
    		final int b = Terminal.lireInt();
     
    		Terminal.ecrireString("Saisir le troisieme entier:");
    		final int c = Terminal.lireInt();
     
    		int resultat = superieur3 (a, b, c);
    	}
     
    	static int superieur3 (int a, int b, int c) {
    		if ((a > b) && (a > c)) {
    			return a;
    		}
     
    		else if ((b > a) && (b > c)) {
    			return b;
    		}
     
    		else if ((c > a) && (c > b)) {
    			return c;
    		}
    	}
    }

    Merci d'avance,
    Sébastien

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Du fait que tu ai un if dans la dernière condition, il est possible que la fonction ne passe pas dans aucune des conditions.Il te faut donc un return par défaut à l'extérieur de tes tests. Ou enlever le dernier if.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Essaie de tester superieur3(6, 3, 6) à la main, par exemple. Tu comprendras qu'aucune de tes conditions n'est vraie et qu'il n'y a donc pas de valeur de retour pour ce cas.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Et si à la veille de la correction, le prof dirait qu'il a fait un erreur dans le sujet et voudrait le plus grand de 4 ou 10 entiers. Tu ferais combien de test if else ?.

    A+.

  5. #5
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Histoire de clarifier les réponses ci dessus :

    une méthode qui déclare renvoyer un int (ou autre chose d'ailleurs) doit le faire dans TOUS les cas.

    Autrement dit si tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static int foo(){
      if (condition1) {
        return truc;
      } else if (condition2) {
        return machin;
      else if (condition3) {
        return bidule;
      }
    }
    Que se passe-t-il si aucune des 3 conditions n'est vraie ?
    La méthode ne sait pas quoi renvoyer.

    Soit tu es CERTAIN qu'une des 3 conditions est forcément vraie, auquel cas tu peux remplacer le dernier "else if" par un simple "else", soit tu dois dire ce que renvoie la méthode si les 3 conditions sont fausses (avec un "return pouetpouet") à la fin de la méthode.
    A toi de voir

Discussions similaires

  1. [SQL] Module de recherche et erreur undefined variable
    Par gryder213 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/09/2007, 17h15
  2. [PHP-JS] Recherche BDD - erreur
    Par acppca dans le forum Langage
    Réponses: 10
    Dernier message: 24/07/2007, 16h32
  3. [Débutant] Recherche d'erreur dans un code
    Par feynman dans le forum Fortran
    Réponses: 7
    Dernier message: 17/07/2007, 20h48
  4. recherche cause erreur EAccessViolation
    Par oiapoque dans le forum Delphi
    Réponses: 12
    Dernier message: 20/06/2006, 10h07
  5. Recherche multicritère erreur '3464' DCount()
    Par alex.a dans le forum Access
    Réponses: 8
    Dernier message: 18/05/2006, 13h57

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