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 :

Erreur "OutOfBoundsException" avec un tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    Points : 40
    Points
    40
    Par défaut Erreur "OutOfBoundsException" avec un tableau
    Bonjour,

    Quelqu'un saurait-il m'expliquer pourquoi j'ai des erreurs avec ce bout de code ?
    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
    public class test {
        public static void main(String[] args) {
     
            int[] t = {1, 2, 0};
            int n = 3;
            int i = 0;
     
            while (t[i] != 0) {
                i++;
            }
     
            t[i] = n;
     
            for (int j = 0; i <= t.length; j++)
                System.out.println(t[j]);
        }
    }
    Merci d'avance pour votre aide.

  2. #2
    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
    Avec for (int j=0; i<=t.length; j++) tu va un cran trop loin, le dernier élément de t est t[t.length-1] et non pas t[t.length]

  3. #3
    Membre habitué
    Profil pro
    Opération
    Inscrit en
    Décembre 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opération

    Informations forums :
    Inscription : Décembre 2012
    Messages : 91
    Points : 188
    Points
    188
    Par défaut
    2 problèmes:
    a) la variable de boucle est j donc il faut tester j et non i
    b) les bornes d'un tableau sont 0 et length -1 donc le teste est j<t.length
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int j=0; j<t.length; j++)  au lieu de for (int j=0; i<=t.length; j++)

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 74
    Points : 40
    Points
    40
    Par défaut
    C'est bon ça marche sur le test.
    Malheureusement, ça prouve qu'il y a une autre problème dans mon code car ici la boucle for n'était là que pour vérifier la première.
    Donc celle là est correcte.

    Merci encore

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