Tableau en java
Résolu/Fermé
RYME1983
Messages postés
3
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
11 novembre 2015
-
Modifié par KX le 11/11/2015 à 14:55
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 11 nov. 2015 à 16:18
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 11 nov. 2015 à 16:18
A voir également:
- Tableau en java
- Tableau croisé dynamique - Guide
- Afficher un tableau en c - Forum C
- Scanf en java ✓ - Forum Java
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
Modifié par KX le 11/11/2015 à 15:08
Modifié par KX le 11/11/2015 à 15:08
Bonjour,
Lorsque tu créés ton tableau
Si tu veux prendre en compte la taille NbreVal que tu utilises dans ton constructeur, alors il faut initialiser ton tableau à ce moment là, pas avant.
Remarques :
Pas besoin de déclarer nbreVal en attribut privé, sa valeur est porté par le tableau :
De même pas besoin de déclarer compt dans la classe, c'est une variable locale à la méthode lireValeur.
Et attention : il ne faut jamais fermer System.in parce que tu ne pourras pas le réouvrir (donc pas de
Lorsque tu créés ton tableau
String tabV[] =new String[NbreVal];quelle est la valeur de NbreVal ? La réponse c'est 0 puisque c'est la valeur par défaut quand tu fais
int NbreVal;, donc ton tableau tabV ne contient aucune case...
Si tu veux prendre en compte la taille NbreVal que tu utilises dans ton constructeur, alors il faut initialiser ton tableau à ce moment là, pas avant.
Remarques :
Pas besoin de déclarer nbreVal en attribut privé, sa valeur est porté par le tableau :
tabV.length.
De même pas besoin de déclarer compt dans la classe, c'est une variable locale à la méthode lireValeur.
Et attention : il ne faut jamais fermer System.in parce que tu ne pourras pas le réouvrir (donc pas de
entree.close();quand le Scanner porte sur System.in)
import java.util.Scanner;
public class Traitement {
private static final Scanner entree = new Scanner(System.in);
private final String[] tabV;
public Traitement(int nbreVal) {
tabV = new String[nbreVal];
}
public void lireValeur() {
System.out.println("Veuillez entrer les "+tabV.length+" valeurs :");
for (int compt=0; compt<tabV.length; compt++) {
tabV[compt] = entree.nextLine();
}
}La confiance n'exclut pas le contrôle
11 nov. 2015 à 15:45
C 'est bon le problème est réglé , je vous remercie , a mes connaissance le constructeur va modifier la valeur de NbrVal la je comprends les attributs exécutent avant le constructeur , la création de tableau avec l indice 0 passe avant le constructeur . Merci beaucoup
11 nov. 2015 à 15:47
11 nov. 2015 à 16:18