Truc en java assez simple mé qui me casse la tete :/

[Résolu/Fermé]
Signaler
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
-
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
-
Bonjour,


je vous informe que je suis débutant en java :( .. ! alors mon probleme est que je ne sais pas vrement comment utiliser les vecteurs ... ! ce que je veux pour le moment est tout a fait simple mais qui me casse la tete en meme temps.. :/ ! je veux faire un petit programme en java qui contient deux class , la 1ére class c'est Etudiant , elle contient tout les methodes , et la 2éme c'est testEtudiant elle contiennt le main , alors ,
au milieu de la class Etudiant j'ai déclaré trois variable , 1)-nom de type string , 2)-prenom de type string , 3)-notes de type Vector !
j'ai utiliser le constructeur suivant

public Etudiant(){
nom = sc.next();
prenom = sc.next();

notes = new Vector();
}

mon but c'est de lire à partir du clavier le nom et le prenom , et les notes de l'étudiant.. aprés l'execution , je lis le nom , et le prenom , mais les notes non !! c'est comme si je n'ai pas ecris ca notes = new Vector(); !! alors c'est quoi le probleme ?? comme lire les notes qui sont de type vector à partir de clavier ??? :( s'il vous plait aider moi et corriger mes fautes !
Merci d'avance !!

2 réponses

Messages postés
16400
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 septembre 2021
2 879
Bonjour,

Tu dois d'abord demander le nombre de notes à entrer, puis faire autant de next que de notes à saisir. Une alternative peut être de ne pas demander le nombre de notes, mais de saisir une valeur spéciale ("stop" par exemple) après la dernière note.

Remarque : Vector ne devrait plus être utilisé, il devrait être remplacé par un ArrayList dans ton cas.
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015

bonjour KX :
supposons que la valeur stop va arreter le saisie de donnees comme vous avez dit , alors comment le faire ? donnez moi les instructions à faire au milieux de constructeur , s'il vous plait et merci d'avance pour votre reponse
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015

c'est à dire je fais :

string valeur ; // si valeur = stop on s'arrete , si non on s'arrete pas //
for(i=0;i< ;i++){
valeur = sc.next();
if(valeur =="stop"){ break ; }
else {
notes = valeur ;
}


est ce que c'est comme ca ?? si oui i doit etre inferieur strictement a quoi ??
Messages postés
16400
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 septembre 2021
2 879
Soit tu choisis l'option où tu as demandé avant combien de notes il fallait entré et tu limites
i
à cette valeur. Soit c'est
"stop"
qui décides quand tu t'arrêtes et dans ce cas
i
ne te sers à rien.

Attention : il ne faut jamais comparer deux objets avec
==
, ici ton test
if(valeur =="stop")
sera toujours faux !

De plus
notes
est un Vector, et
valeur 
est un String, tu ne peux donc pas faire
notes = valeur
.

Regarde la documentation de Vector si tu ne connais pas ses méthodes (ou mieux : ArrayList)
https://docs.oracle.com/javase/7/docs/api/index.html?java/util/Vector.html
https://docs.oracle.com/javase/7/docs/api/index.html?java/util/ArrayList.html
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015

ah boon , okey supposons que j'ai demandé avant combien do notes fallait entré ... et je l'ai fait comme vous avez dit ... il me donne un erreur le compilateur !! que je ne peux pas ecrire notes = sc.next(); !!
Messages postés
16400
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 septembre 2021
2 879
Comme je l'ai dit plus haut :
notes 
est uin Vector,
sc.next()
est un String, tu ne peux donc pas faire
notes = sc.next();
!
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015

ok merci beaucoup KX