Problème avec un programme
amine
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je suis débutant en programmation et j'ai beaucoup de misère avec un programme.
Ce que j'essaie de faire c'est de remplir un tableau de temps. Le temps initial vaut 0 et on a un saut de temps "x" et un temps final "y". L'utilisateur donne le saut de temps ainsi que le temps final et le programme fais un tableau avec les données. Par exemple : Avec un temps final "10" et un saut de temps "2" ça donnerait ceci : 0 2 4 6 8 10. Mais ça ne marche pas. Voila mon code:
J'ai cette erreur à la fin :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Int.main(Int.java:25)
J'affiche à la fin la troisième position du tableau pour vérification.
Merci pour votre aide!!
Je suis débutant en programmation et j'ai beaucoup de misère avec un programme.
Ce que j'essaie de faire c'est de remplir un tableau de temps. Le temps initial vaut 0 et on a un saut de temps "x" et un temps final "y". L'utilisateur donne le saut de temps ainsi que le temps final et le programme fais un tableau avec les données. Par exemple : Avec un temps final "10" et un saut de temps "2" ça donnerait ceci : 0 2 4 6 8 10. Mais ça ne marche pas. Voila mon code:
import java.util.Scanner;
public class Int {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
double sautDeTemps;
double tempsFinal;
System.out.println("Entrez le Saut de temps.");
sautDeTemps = sc.nextDouble();
System.out.println("Entrez le temps final.");
tempsFinal = sc.nextDouble();
int taille = ((int)(tempsFinal/sautDeTemps))+1;
double tblTemps [] = new double[taille-1];
int i = 0;
while (i < taille){
if (i == 0){
tblTemps[0] = 0.0;
}
else {
tblTemps[i] = sautDeTemps + tblTemps[i-1];
}
i++;
}
System.out.println(tblTemps[2]);
}
}
J'ai cette erreur à la fin :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Int.main(Int.java:25)
J'affiche à la fin la troisième position du tableau pour vérification.
Merci pour votre aide!!
1 réponse
-
Bonjour,
Le problème c'est que tu as faitnew double[taille-1]
tu ne peux donc pas fairewhile (i < taille)
tu dois t'arrêter àtaille-1
ou initialiser le tableau àtaille
.
Remarque, si ta boucle while est de la forme :
int i = 0; while (i < taille) { ... i++; }
Alors il vaut mieux faire une boucle for :
for (int i = 0; i < taille; i++) { ... }