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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 11 nov. 2015 à 16:18
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 11 nov. 2015 à 16:18
A voir également:
- Tableau en java
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Tableau word - Guide
1 réponse
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
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