Problème avec un programme
amine
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - 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++) { ... }