Erreur execution java
Wenzel
Messages postés
225
Date d'inscription
Statut
Membre
Dernière intervention
-
sandul Messages postés 3927 Date d'inscription Statut Membre Dernière intervention -
sandul Messages postés 3927 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je code sous eclipse en java depuis peu, et j'ai là un code qui bug lorsque j'essaye de l'executer
voici la classe principale :
class Principale
{
public static void main(String args[])
{
// Tableau de produits
Produit [] produits = new Produit[7];
int i;
Article couche = new Article("Couches", 15.12);
Article yaourts = new Article("Yaourts natures", 1.67);
Article steak = new Article("Steak 200g", 3.43);
Boisson source = new Boisson("Eau de source", 1.12, 1.50);
Boisson soda = new Boisson("Cola 2 litres", 2.31, 2.00);
Alcool biere = new Alcool("Bière 8x25 cl", 4.31, 2.00, 4.5, .108);
Alcool vodka = new Alcool("Vodka 70 cl", 8.13, .7, 40, .155);
// On recopie les différents produits dans le tableau
produits[0] = couche;
produits[1] = yaourts;
produits[2] = steak;
produits[3] = source;
produits[4] = soda;
produits[5] = biere;
produits[6] = vodka;
// On affiche les caractéristiques des différents articles
System.out.println("Caractéristiques des articles\n------------------------------\n");
for (i = 0; i < 7; i++)
System.out.println(produits[i]);
// On affiche les prix des différents articles, en utilisant
// les méthodes getPrixTTC()
for (i = 0; i < 7; i++)
System.out.println(produits[i].getPrixTTC());
// On fait une commande
Commande c1 = new Commande(4, new Article [] {couche, yaourts, steak, biere}, new int [] {2, 3, 1, 2});
// Et une autre commande
Commande c2 = new Commande(6, new Article [] {yaourts, steak, source, soda, biere, vodka}, new int [] {1, 3, 12, 8, 5, 2});
// On affiche l'état des commandes
System.out.println("\n" + c1);
System.out.println("\n" + c2);
// On prépare des livraisons possibles
Livraison l3 = new Livraison (c1, 2.0);
Livraison l4 = new Livraison (c1, 35.0);
Livraison l5 = new Livraison (c1, 52.0);
Livraison l6 = new Livraison (c2, 120.0);
Livraison l7 = new Livraison (c2, 107.708);
// On affiche les caractéristiques des livraisons
System.out.println(l3);
System.out.println(l4);
System.out.println(l5);
System.out.println(l6);
System.out.println(l7);
}
}
et voici la classe Commande :
public class Commande extends Service{
// Attributs
private int nb_articles;
private Article [] tabArticles;
private int [] tabQuantite;
public static final int tMax = 10;
// Constructeur
public Commande (int nb, Article[] tabArt, int[] tabNb) {
super();
nb_articles = nb;
tabArticles = tabArt;
tabQuantite = tabNb;
}
// Méthodes
// getPrixTTC
public double getPrixTTC() {
double prix_commande = 0;
for(int i=0;i <= nb_articles;i++) {
prix_commande = prix_commande + tabArticles[i].getPrixTTC() * tabQuantite[i];
}
return prix_commande;
}
// ajoute
public void ajoute(Article art, int quant){
if(nb_articles < tabArticles.length) {
boolean ajoute = false;
int i=0;
while ((i <= tMax) && (ajoute == false)) {
if (tabArticles[i] == null) {
tabArticles[i] = art;
tabQuantite[i] = quant;
ajoute = true;
i++;
}
}
}
}
// toString
public String toString() {
String titre = "-- Article de la Commande n°"+getIdentifiant()+" --\n";
for (int j = 0; j < nb_articles; j ++) {
String comm = tabQuantite[j] + " x ( "+tabArticles[j]+"\n";
titre = titre.concat(comm);
}
String fincomm = "-- Fin de la Commande n°"+getIdentifiant()+", montant : "+this.getPrixTTC()+" --\n";
titre = titre.concat(fincomm);
return titre;
}
}
dans la classe Principale il ya une methode d'affiche de la commande c1, par system.out.println(c1);
mais la toString de commande beug et je ne comprend pas pk.
voici le code derreur de java :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Commande.getPrixTTC(Commande.java:20)
at Commande.toString(Commande.java:48)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at Principale.main(Principale.java:44)
voilà, merci
je code sous eclipse en java depuis peu, et j'ai là un code qui bug lorsque j'essaye de l'executer
voici la classe principale :
class Principale
{
public static void main(String args[])
{
// Tableau de produits
Produit [] produits = new Produit[7];
int i;
Article couche = new Article("Couches", 15.12);
Article yaourts = new Article("Yaourts natures", 1.67);
Article steak = new Article("Steak 200g", 3.43);
Boisson source = new Boisson("Eau de source", 1.12, 1.50);
Boisson soda = new Boisson("Cola 2 litres", 2.31, 2.00);
Alcool biere = new Alcool("Bière 8x25 cl", 4.31, 2.00, 4.5, .108);
Alcool vodka = new Alcool("Vodka 70 cl", 8.13, .7, 40, .155);
// On recopie les différents produits dans le tableau
produits[0] = couche;
produits[1] = yaourts;
produits[2] = steak;
produits[3] = source;
produits[4] = soda;
produits[5] = biere;
produits[6] = vodka;
// On affiche les caractéristiques des différents articles
System.out.println("Caractéristiques des articles\n------------------------------\n");
for (i = 0; i < 7; i++)
System.out.println(produits[i]);
// On affiche les prix des différents articles, en utilisant
// les méthodes getPrixTTC()
for (i = 0; i < 7; i++)
System.out.println(produits[i].getPrixTTC());
// On fait une commande
Commande c1 = new Commande(4, new Article [] {couche, yaourts, steak, biere}, new int [] {2, 3, 1, 2});
// Et une autre commande
Commande c2 = new Commande(6, new Article [] {yaourts, steak, source, soda, biere, vodka}, new int [] {1, 3, 12, 8, 5, 2});
// On affiche l'état des commandes
System.out.println("\n" + c1);
System.out.println("\n" + c2);
// On prépare des livraisons possibles
Livraison l3 = new Livraison (c1, 2.0);
Livraison l4 = new Livraison (c1, 35.0);
Livraison l5 = new Livraison (c1, 52.0);
Livraison l6 = new Livraison (c2, 120.0);
Livraison l7 = new Livraison (c2, 107.708);
// On affiche les caractéristiques des livraisons
System.out.println(l3);
System.out.println(l4);
System.out.println(l5);
System.out.println(l6);
System.out.println(l7);
}
}
et voici la classe Commande :
public class Commande extends Service{
// Attributs
private int nb_articles;
private Article [] tabArticles;
private int [] tabQuantite;
public static final int tMax = 10;
// Constructeur
public Commande (int nb, Article[] tabArt, int[] tabNb) {
super();
nb_articles = nb;
tabArticles = tabArt;
tabQuantite = tabNb;
}
// Méthodes
// getPrixTTC
public double getPrixTTC() {
double prix_commande = 0;
for(int i=0;i <= nb_articles;i++) {
prix_commande = prix_commande + tabArticles[i].getPrixTTC() * tabQuantite[i];
}
return prix_commande;
}
// ajoute
public void ajoute(Article art, int quant){
if(nb_articles < tabArticles.length) {
boolean ajoute = false;
int i=0;
while ((i <= tMax) && (ajoute == false)) {
if (tabArticles[i] == null) {
tabArticles[i] = art;
tabQuantite[i] = quant;
ajoute = true;
i++;
}
}
}
}
// toString
public String toString() {
String titre = "-- Article de la Commande n°"+getIdentifiant()+" --\n";
for (int j = 0; j < nb_articles; j ++) {
String comm = tabQuantite[j] + " x ( "+tabArticles[j]+"\n";
titre = titre.concat(comm);
}
String fincomm = "-- Fin de la Commande n°"+getIdentifiant()+", montant : "+this.getPrixTTC()+" --\n";
titre = titre.concat(fincomm);
return titre;
}
}
dans la classe Principale il ya une methode d'affiche de la commande c1, par system.out.println(c1);
mais la toString de commande beug et je ne comprend pas pk.
voici le code derreur de java :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Commande.getPrixTTC(Commande.java:20)
at Commande.toString(Commande.java:48)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at Principale.main(Principale.java:44)
voilà, merci
A voir également:
- Erreur execution java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
4 réponses
'Soir,
Essaie avec
++
Essaie avec
for (int i=0; i < nb_articles; i++) {à la place de
for (int i=0; i <= nb_articles; i++) {.
++
Erreur de debutant:
dans commande?java
for(int i=0;i <= nb_articles;i++) {
i ira de 0 à 4 ce qui fait 5 valeurs alors que t'a commande n'en comporte que 4
il faut mettre
for(int i=0;i < nb_articles;i++) {
il faut aussi savoir qu'en java tu peut connaitre facilement la taille d"un tableau en faisant par exemple
tabArt.length
tu peux donc enlever le paramètre "nb" de ta fonction commande
-
Grou29
http://lienssanslien.free.fr
dans commande?java
for(int i=0;i <= nb_articles;i++) {
i ira de 0 à 4 ce qui fait 5 valeurs alors que t'a commande n'en comporte que 4
il faut mettre
for(int i=0;i < nb_articles;i++) {
il faut aussi savoir qu'en java tu peut connaitre facilement la taille d"un tableau en faisant par exemple
tabArt.length
tu peux donc enlever le paramètre "nb" de ta fonction commande
-
Grou29
http://lienssanslien.free.fr
Merci beaucoup pour votre soutien, c'était effectivement ca l'erreur d'exécution !
mon projet compile a présent et s'exécute parfaitement ! =)
j'aimerais approfondir ma connaissance du langage,
y a-t'il de bons tutos, bien documentés sur le langage java pour progresser rapidement, sur de bonnes bases ?
si oui, merci de me les indiqués
sinon, merci a l'équipe ;)
mon projet compile a présent et s'exécute parfaitement ! =)
j'aimerais approfondir ma connaissance du langage,
y a-t'il de bons tutos, bien documentés sur le langage java pour progresser rapidement, sur de bonnes bases ?
si oui, merci de me les indiqués
sinon, merci a l'équipe ;)
Lis ceci de bout en bout: https://deitel.com/other-books/
Et par la suite, pour progresser, les Design Patterns seront indispensables :
- le classique https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
- et une excellente version pour Java: https://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/ref=sr_1_8?ie=UTF8&s=books&qid=1261128104&sr=1-8
Troisième étape: faudra approfondir des sous-domaines de la programmation Java. Par exemple, des technologies (exemple au hasard: Swing, pour écrire des applis autonomes) ou encore des frameworks (exemple au hasard: Spring, car il est à la mode et permet de faire pas mal de choses). En même temps, tu garderas un oeil attentif sur un (ou plusieurs, mais bon) IDE en essayant de profiter au maximum de ce qu'il(s) t'offre(nt) pour booster ta productivité.
Ce n'est pas vraiment une progression "rapide", là... Mais les bases seront excellentes et à long terme tu constateras que tu n'as pas perdu ton temps.
++
--
Et par la suite, pour progresser, les Design Patterns seront indispensables :
- le classique https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
- et une excellente version pour Java: https://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/ref=sr_1_8?ie=UTF8&s=books&qid=1261128104&sr=1-8
Troisième étape: faudra approfondir des sous-domaines de la programmation Java. Par exemple, des technologies (exemple au hasard: Swing, pour écrire des applis autonomes) ou encore des frameworks (exemple au hasard: Spring, car il est à la mode et permet de faire pas mal de choses). En même temps, tu garderas un oeil attentif sur un (ou plusieurs, mais bon) IDE en essayant de profiter au maximum de ce qu'il(s) t'offre(nt) pour booster ta productivité.
Ce n'est pas vraiment une progression "rapide", là... Mais les bases seront excellentes et à long terme tu constateras que tu n'as pas perdu ton temps.
++
--