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

Collection et Stream Java Discussion :

Remplir tableau valeurs int


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut Remplir tableau valeurs int
    Bonjour,
    J'ai un tableau int [] de n cases, tableau est vide. Je souhaite remplir par exemple dans la premiere case vide. Je dois tester d'abord si la case contienne déjà un nombre ou pas (de préférence par une boucle). Si la case est vide, j'ecris un nombre dans la première case vide. Et ainsi de suite : toujours tester d'abord si la case T[0] est vide, puis T[1] etc, et à la première case vide - j'écris un int.

    Merci de votre aide

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Bon bah maintenant que la spécification de ton besoin est claire, tu n'as plus qu'à t'y mettre.

    PS : Nous n'allons pas résoudre ton problème à ta place donc il va falloir montrer davantage de recherche , de code de ton côté et ce qui te bloque.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Bon bah maintenant que la spécification de ton besoin est claire, tu n'as plus qu'à t'y mettre.

    PS : Nous n'allons pas résoudre ton problème à ta place donc il va falloir montrer davantage de recherche , de code de ton côté et ce qui te bloque.
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    import java.util.Scanner;  
    public class Elephants {
     
    public static void main(String[] args)	{
     Scanner scan = new Scanner(System.in);
     
    	System.out.println("Combien d'éléphants ?");
    	int nombreElephants = scan.nextInt();
    	String[] tNomElephants = new String [nombreElephants];
    	int []tAge = new int [nombreElephants];
     
     
    	int choix;
    	do
    	{		 
     
    	System.out.println(" MENU : ");
    	System.out.println("1 - Afficher les éléphants");
    	System.out.println("2 - Ajouter un éléphant");
    	System.out.println("3 - Quitter");
    	Scanner sScan = new Scanner(System.in);
    	choix=sScan.nextInt();
     
    	switch (choix)
    	{
    		case 1:	
     
    		for (int i = 0; i < nombreElephants; i++) 
     
     { System.out.println ("Eléphant " + tNomElephants[i]+" est agé de "+ tAge[i]+" ans");	} 
     
    		break;
    		case 2: //Ajouter un éléphant dans la première case vide 
    		          //du tableau tElephants et son âge dans tAge 
    		break;
     
    		case 3: System.exit(0);
    		break;
     
    		default : System.exit(0);
    		break;
    			}}
    			while (choix!=3);
    		}}
    Ce qui me bloque c'est "case 2". Il est facile d'ajouter le premier éléphant, mais après, la case [0] est occupée, comment faire pour que une boucle trouve la première case vide et écrit dedans ?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 18
    Points : 31
    Points
    31
    Par défaut
    Les valeurs d'un tableau de types primitifs numériques sont initialisées par défaut à 0, et à null pour les tableaux de String.
    Cette valeur par défaut pourrait t'aider à déterminer si une case de ton tableau est « vide ».

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par flip_ Voir le message
    Les valeurs d'un tableau de types primitifs numériques sont initialisées par défaut à 0, et à null pour les tableaux de String.
    Cette valeur par défaut pourrait t'aider à déterminer si une case de ton tableau est « vide ».
    Bon, ça je le sais, mais comment continuer : par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if tNomElephants[0]=null <Ecrire nom> 
    else if tNomElephants[1]=null<Ecrire nom>
    else if tNomElephants[2]=null<Ecrire nom>[/>
    Je voudrais mettre tout ça dans une boucle for plutôt...

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu boucle sur les cases du tableau et quand tu trouve une case vide, tu ajoute. Le mot clé pour sortir d'une boucle quand tu veux, c'est "break" si tu ne le connait pas.

    Personellement, je pense qu'il serait plutot préférable que tu maintienne un variable supplémentaire: le nombre d'éléphants déjà dans le tableau, puisque tu devra de toutes facons arrêter de rajouter des éléphant quand cette variable sera égale à nbreElephants.

  7. #7
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    voici un truc que j'ai fait il y a pas mal de temps et qui peut être pourrais t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i = 0; i < tableau.size ; i++){
    if(tableau[i] != 0){
    	tableau[i] = <Ecrire nom>
    	}
    }
    Tu dois vérifier la valeur de chaque indice de ton tableau, et si c'est vide, tu écris

    En espérant avoir pu t'aider

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 18
    Points : 31
    Points
    31
    Par défaut
    Par exemple, pour ton tableau de String :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int i = 0;
    for(; i <nombreElephants && tNomElephants[i] != null; i++){}
    Après ça, i vaut soit la taille de ton tableau, et c'est que ton tableau est plein, soit vaut l'indice de la première case vide de ton tableau et tu peux alors t'en servir pour rajouter un nouveau nom au bon endroit.
    Et tu fais quelque chose de similaire avec ton tableau d'int.

    Edit : bon, ben, grilled. ^^'

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par leara500 Voir le message
    voici un truc que j'ai fait il y a pas mal de temps et qui peut être pourrais t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i = 0; i < tableau.size ; i++){
    if(tableau[i] != 0){
    	tableau[i] = <Ecrire nom>
    	}
    }
    Tu dois vérifier la valeur de chaque indice de ton tableau, et si c'est vide, tu écris

    En espérant avoir pu t'aider

    Je vies d'éssayer ça, mais ça me donne une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    case 2: 
    for (int i = 0; i < tNomElephants.length ; i++)
    {
     if(tNomElephants[i] == null)	
    tNomElephants[i] = scan.nextLine();		  		
    else;}
    break;

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    La solution de flip me paraît bonne, mais j'ai toujours une erreur !
    Voici mon code actuel :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    import java.util.Scanner;  
    public class Elephants {
     
    public static void main(String[] args)	{
     Scanner scan = new Scanner(System.in);
     
    System.out.println("Combien d'éléphants ?");
    int nombreElephants = scan.nextInt();
    String[] tNomElephants = new String [nombreElephants];
    int []tAge = new int [nombreElephants];		
     
    int choix;
    do
    {		 
     
    System.out.println(" MENU : ");
    System.out.println("1 - Afficher les éléphants");
    System.out.println("2 - Ajouter un éléphant");
    System.out.println("3 - Quitter");
    Scanner sScan = new Scanner(System.in);
    choix=sScan.nextInt();
     
    switch (choix)
    {
    	case 1:	
     
    	for (int i = 0; i < nombreElephants; i++) 
     
    	{ 
    System.out.println ("Eléphant " + tNomElephants[i]+" est agé de "+ tAge[i]+" ans");	} 
     
    	break;
    	case 2: 
    	int i=0;
    for(; i < nombreElephants && tNomElephants[i] != null; i++)
    {
    tNomElephants[i]=sScan.nextLine();
    	}
    break;
     
    case 3: System.exit(0);
    	break;
     
    	default : System.exit(0);
    	break;
    	}}
    	while (choix!=3);
    		}}

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 18
    Points : 31
    Points
    31
    Par défaut
    Essaie déjà d'indenter correctement ton code, et de mettre tes accollades d'une façon cohérente (partout de la même façon, pas tantôt d'une façon et tantôt d'une autre), tu y verras toi-même plus clair...

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Points : 179
    Points
    179
    Par défaut
    Regarde tout simplement l'exemple de Leara500 et adapte le.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (int i = 0; i < nombreElephants; i++) {
    	if (tNomElephants[i] == null && tAge[i] == 0) {
    		tNomElephants[i] = "test";
    		tAge[i] = 10;						
    		break;
    	}
    }

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Merci beaucoup, vous êtes cool, ca marche maintenant !

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

Discussions similaires

  1. Comparer une valeur int au autre valeur int d'un tableau
    Par mathieupicard dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 04/07/2015, 02h39
  2. Réponses: 2
    Dernier message: 25/11/2010, 11h34
  3. Réponses: 6
    Dernier message: 23/05/2009, 16h29
  4. [tableau]Valeur dans un tableau
    Par kisscool31 dans le forum Collection et Stream
    Réponses: 30
    Dernier message: 17/05/2005, 09h45
  5. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42

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