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 :

String non reconnue


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut String non reconnue
    Bonjour
    je suis débutant en informatique et je dois effectuer un programme dont voici l'intitulé:
    Ecrire un programme qui demande à l’utilisateur d’entrer un nombre d'étudiants et chaque nom d'étudiant avec une cote.
    Le programme doit afficher les deux étudiants qui ont les plus grandes cotes.

    je pensais avoir réussi le programme dont voici le code source:

    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
    import java.util.Scanner;
    public class ex4
    {
    	public static void main(String[] args)
    	{
     
     
    	float max;
    	float cote;
    	max=0;
    	String meilleur;
     
    	Scanner keyboard = new Scanner(System.in);
     
    	System.out.print("Quel est votre nombre d'etudiant ? :  ");
    	int nbcote = keyboard.nextInt();
    	int cpt=1;
     
    		while (cpt<=nbcote)
    		{
    		System.out.print("Entrez le nom de l'eleve : ");
    		String x = keyboard.nextLine();
    		System.out.print(" Entrez maintenant sa cote : ");
    		cote = keyboard.nextInt();
    			if(cote>max)
    			{
    			max=cote;
    			String meilleur = x;
    			}
    		System.out.println(meilleur);
    		cpt=cpt+1;
    		}
    	}
    }
    Mais l'invité ne reconnait pas la variable "meilleur"

    Merci d'avance.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Points : 138
    Points
    138
    Par défaut
    au debut de ton code tu as
    et ensuite plus bas
    déjà ton compilateur devrait donner une erreur la dessus, vu que la variable à le même nom

    pour que ca fonctionne tu as juste à changer
    par

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    j'ai changé mais il me met qu'il y a une erreur dans System.out.println(meilleur);

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    Par défaut
    Salut,

    Si tu as conservé ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
    max=cote;
    String meilleur = x;
    }
    System.out.println(meilleur);
    alors c'est un problème de portée de variable. Elle n'existe qu'entre ses accolades les plus proches.
    Il te faut déclarer la variable à l'extérieur et l'initialiser à l'intérieur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String meilleur;
    if(cote>max) {
      max=cote;
      meilleur = x;
    }
    System.out.println(meilleur);

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par Thib241190 Voir le message
    j'ai changé mais il me met qu'il y a une erreur dans System.out.println(meilleur);
    C'est logique...

    Tu n'as pas initialisé la variable meilleur. Il faut lui donner une valeur. Dans ton cas, c'est à dire qu'il faut lui donner une valeur par défaut et changer :

    par

    En plus de cela, il faut afficher le meilleur dans la boucle, mais après la boucle.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    désolé et merci mais ca ne marche toujours pas j'ai rentré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String meilleur;
    if(cote>max) {
      max=cote;
      meilleur = x;
    }
    System.out.println(meilleur);
    mais il me met encore que la variable n'est pas initialisée

  7. #7
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    J'ai dit qu'il fallait mettre une valeur à la String...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String meilleur = "";
    if(cote>max) {
      max=cote;
      meilleur = x;
    }
    En plus de cela, String meilleur était mieux à son ancienne place...

    Je te conseille de revoir les bases de Java avant de coder.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci j'ai compris l'erreur.

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

Discussions similaires

  1. STRING non reconnu dans un .h
    Par GWIT_dev dans le forum C++/CLI
    Réponses: 1
    Dernier message: 28/02/2012, 16h57
  2. strlen et strcpy non reconnu avec string.h
    Par wolflinger dans le forum C++
    Réponses: 17
    Dernier message: 21/02/2006, 13h44
  3. [EJB] [JSP] Méthode EJB non reconnue dans jsp
    Par stago dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/07/2004, 09h52
  4. Creation de table, caractère non reconnu
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/02/2004, 13h28
  5. xslt_create() non reconnu
    Par BRAUKRIS dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 11/12/2003, 14h43

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