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!!
A voir également:
- Problème avec un programme
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
- Programme word gratuit - Guide
1 réponse
Bonjour,
Le problème c'est que tu as fait
Remarque, si ta boucle while est de la forme :
Alors il vaut mieux faire une boucle for :
Le problème c'est que tu as fait
new double[taille-1]tu ne peux donc pas faire
while (i < taille)tu dois t'arrêter à
taille-1ou 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++) {
...
}