Eclipse pb avec for et completion de code.
Résolu
EminoMeneko
Messages postés
2435
Date d'inscription
Statut
Membre
Dernière intervention
-
Profil bloqué -
Profil bloqué -
Bonjour,
essayant de dépoussiérer Java j'ai installé Eclipse et je suis les tutos du Site du Zero.
Pour mettre en application le tuto (bien que vieux à mon niveau c'est tout facile) je suis en cours de réalisation du TP1.
Je voulais compiler pour voir ce que ça donne dans cette étape intermédiaire mais pour une raison étrange Eclipse m'ennuie avec une boucle for que voici :
Que je sache ma syntaxe est juste, non ?
Un for c'est bien for (int initialisation ; boolean condition ; int incrémentation), non ?
Où est le problème ?
Aussi je trouve que la complétion de code ne marche pas bien.
Quand je fait ctrl+espace et bien il m'ouvre la liste avec pour seule option "No default Proposals"... Bref la complétion de code sous Eclipse j'ai connu bien mieux.
Est-ce que c'est lié au fait que j'utilise la version 64 bits ? Ça ne devrait pas poser problème pourtant mais c'est peut-être un bogue connu de la version 64 bits, qui sait.
J'ai fini ce TP hormis l'alignement des valeurs dans le tableau (étape suivante) et ce problème avec la boucle for.
Pas besoin de soluce, c'est pas le problème et de toute façon je vérifierais avec le code de correction du site quand j'aurais fini ma version.
Ce qui m'intéresse c'est le problème avec for et la complétion de code.
Merci d'avance à ceux qui m'aideront. :)
essayant de dépoussiérer Java j'ai installé Eclipse et je suis les tutos du Site du Zero.
Pour mettre en application le tuto (bien que vieux à mon niveau c'est tout facile) je suis en cours de réalisation du TP1.
Je voulais compiler pour voir ce que ça donne dans cette étape intermédiaire mais pour une raison étrange Eclipse m'ennuie avec une boucle for que voici :
for (nDebut ; nDebut < nFin ; nDebut+nPas) { System.out.println("| "+nDebut+" | "+((9/5)*nDebut+32)+" |"); System.out.println("+-----------+-----------+"); }
Que je sache ma syntaxe est juste, non ?
Un for c'est bien for (int initialisation ; boolean condition ; int incrémentation), non ?
Où est le problème ?
Aussi je trouve que la complétion de code ne marche pas bien.
Quand je fait ctrl+espace et bien il m'ouvre la liste avec pour seule option "No default Proposals"... Bref la complétion de code sous Eclipse j'ai connu bien mieux.
Est-ce que c'est lié au fait que j'utilise la version 64 bits ? Ça ne devrait pas poser problème pourtant mais c'est peut-être un bogue connu de la version 64 bits, qui sait.
J'ai fini ce TP hormis l'alignement des valeurs dans le tableau (étape suivante) et ce problème avec la boucle for.
Pas besoin de soluce, c'est pas le problème et de toute façon je vérifierais avec le code de correction du site quand j'aurais fini ma version.
Ce qui m'intéresse c'est le problème avec for et la complétion de code.
Merci d'avance à ceux qui m'aideront. :)
A voir également:
- Eclipse pb avec for et completion de code.
- Code ascii - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Eclipse java - Télécharger - Langages
- Code de déverrouillage oublié - Guide
- Code puk bloqué - Guide
4 réponses
Est-ce que tu a bien défini le type de ta variable nDebut?
Est-ce que nFin e une valeur précise?
Je serais toi je mettrais un System.out.println("test for") pour voir si tu rentre dans ta boucle.
Peux-tu mettre l'erreur exacte s'il te plaît.
Est-ce que nFin e une valeur précise?
Je serais toi je mettrais un System.out.println("test for") pour voir si tu rentre dans ta boucle.
Peux-tu mettre l'erreur exacte s'il te plaît.
DasSium95
Messages postés
673
Date d'inscription
Statut
Membre
Dernière intervention
135
J'ai oublié quelle est la valeur de nPAs??
System.out.println("| "+nDebut+" | "+((9/5)*nDebut+32)+" |");
Ca n'est pas une bonne syntaxe
Ca n'est pas une bonne syntaxe
Vous avez tout faux ! le problème ne vient pas de là.
En fait j'ai posé la question ailleurs et j'ai eu une réponse il y a quelques jours de cela. J'avais carrément oublié que je l'avais posé ici. Alors c'est simple la boucle for l'astuce était de remplacer par la ligne suivante.
Avec ça il faut modifier nDebut par i dans les accolades qui délimitent la boucle.
Le code marche à merveille.
Il n'y a rien de choquant dans ma syntaxe du sysout. Tout est correcte une fois ces petits changements réalisés.
Merci quand même d'avoir essayé de m'aider. :)
J'espère maintenant que quelqu'un pourra me donner des explications à mon problème de complétion de code vide.
En fait j'ai posé la question ailleurs et j'ai eu une réponse il y a quelques jours de cela. J'avais carrément oublié que je l'avais posé ici. Alors c'est simple la boucle for l'astuce était de remplacer par la ligne suivante.
for (int i = nDebut ; i < nFin ; i+= nPas)
Avec ça il faut modifier nDebut par i dans les accolades qui délimitent la boucle.
Le code marche à merveille.
Il n'y a rien de choquant dans ma syntaxe du sysout. Tout est correcte une fois ces petits changements réalisés.
Merci quand même d'avoir essayé de m'aider. :)
J'espère maintenant que quelqu'un pourra me donner des explications à mon problème de complétion de code vide.
Vous avez tout faux sur la syntaxe de :
???
La syntaxe est degeulasse meme si ca marche
ce n'est pas a faire.
Dans les bonne pratiques java :
la concaténation de chaine de caractère doit se faire grâce a un objet StringBuilder et non grace a des +++
de plus les variables doivent être externalisées dans les fonctions.
Voilà du Java optimisé
System.out.println("| "+nDebut+" | "+((9/5)*nDebut+32)+" |");
???
La syntaxe est degeulasse meme si ca marche
ce n'est pas a faire.
Dans les bonne pratiques java :
la concaténation de chaine de caractère doit se faire grâce a un objet StringBuilder et non grace a des +++
de plus les variables doivent être externalisées dans les fonctions.
Integer result = (9/5) * ndebut + 32; StringBuilder sb = new StringBuilder(); sb.append("| "); sb.append(nDebut); sb.append(" | "); sb.append(result); sb.append(" |"); System.out.println(sb.toString());
Voilà du Java optimisé
un petit débat sur la concaténation des string : https://www.developpez.net/forums/d531701/java/general-java/bonnes-pratiques-liees-performance/
Merci, j'ai lu un petit peu en me concentrant sur ce qui se rapproche de la question mais y' pas grande explications. Je ne fais pas de programmes pour des systèmes distribués ou apparentés juste un peu de code pour me remettre dans le bain. La différence entre stringbuilder et les plus à mon niveau je ne pense pas la voir. Après c'est toujours bon a prendre les bonne pratiques mais dans le cadre de TP que je fais personnellement je n'ai aucune obligation sur les performances donc pas de quoi chipoter là dessus.
Merci quand même pour le lien.
Merci quand même pour le lien.
C'est vrai qu'au niveau de petites applications, on ne voit pas la différence.
Mais moi je pense que ces pratiques et d'autres encore sont a généraliser dans tout les cas.
Ca devient ainsi un automatisme de codage qui ne coute pas beaucoup de temps de codage supplémentaire. pour moi c'est aussi utile que de bien commenter son code etc..
Surtout si le but à terme est de programmer dans un environnement professionnel. A long terme ces pratiques réduisent énormément les couts d'évolution(montée en charge, ajout d'interfacage avec des appli tierce...) et les couts de mantien de l'appli.
Toutes appli est amenée à grossir avec le temps.
Imagine tu lance un site tout simple coder sans trop se préoccuper des perf et que par la suite il rencontre un gros succès. A ce niveau toutes les petites pertes de mémoires et de temps de réponses se cumulent proportionnellement au nombres de connectés. Avec le web 2.0 et les technologies comme l'Ajax, l'utilisation des sites à bien changé ses temps ci. les utilisateurs ont accès a des sites très dynamiques avec beaucoup de fonctionnalité. Les gens naviguent aussi très rapidement et passe les pages directement pour allé aux informations qu'ils souhaitent. surtout sur les sites qu'ils connaissent. Les serveurs peuvent recevoir des milliers de requête par seconde et doivent répondre en temps quasi réel au requêtes des utilisateurs.
Une appli qui n'a pas pris en compte des le départ les bonnes pratiques en terme de codage va être vite surpassée. Il va valoir reprendre tout le code en entier a rechercher les causes de pertes. changer le code dans de nombreuses classes, refaire des tonnes de tests et sortir une nouvelle version. Si cela ne necessite pas une refonte de l'architecture. Ce qui represente un cout enorme et beaucoup de temps perdu.
Mais moi je pense que ces pratiques et d'autres encore sont a généraliser dans tout les cas.
Ca devient ainsi un automatisme de codage qui ne coute pas beaucoup de temps de codage supplémentaire. pour moi c'est aussi utile que de bien commenter son code etc..
Surtout si le but à terme est de programmer dans un environnement professionnel. A long terme ces pratiques réduisent énormément les couts d'évolution(montée en charge, ajout d'interfacage avec des appli tierce...) et les couts de mantien de l'appli.
Toutes appli est amenée à grossir avec le temps.
Imagine tu lance un site tout simple coder sans trop se préoccuper des perf et que par la suite il rencontre un gros succès. A ce niveau toutes les petites pertes de mémoires et de temps de réponses se cumulent proportionnellement au nombres de connectés. Avec le web 2.0 et les technologies comme l'Ajax, l'utilisation des sites à bien changé ses temps ci. les utilisateurs ont accès a des sites très dynamiques avec beaucoup de fonctionnalité. Les gens naviguent aussi très rapidement et passe les pages directement pour allé aux informations qu'ils souhaitent. surtout sur les sites qu'ils connaissent. Les serveurs peuvent recevoir des milliers de requête par seconde et doivent répondre en temps quasi réel au requêtes des utilisateurs.
Une appli qui n'a pas pris en compte des le départ les bonnes pratiques en terme de codage va être vite surpassée. Il va valoir reprendre tout le code en entier a rechercher les causes de pertes. changer le code dans de nombreuses classes, refaire des tonnes de tests et sortir une nouvelle version. Si cela ne necessite pas une refonte de l'architecture. Ce qui represente un cout enorme et beaucoup de temps perdu.
Ca te fait gagner un tic processeur, soit 1/100000 de seconde :D
Non je rigole, mais pour le problème initial, le nDebut n'est pas initialisé ni déclaré.
Non je rigole, mais pour le problème initial, le nDebut n'est pas initialisé ni déclaré.
for(int i = 0; i < nFin; i++) { // ... }
Si si il l'est mais je n'ai publié que la partie avec le for donc on ne le voit pas ici. De toute façon le problème est pas là et pour rappel il n'y a plus de problème tout du moins plus au niveau du code. La seule chose qui reste a régler c'est la complétion de code qui marche toujours pas. J'ai aussi une version 32bits sur un autre PC et là la complétion de code marche bien. C'est peut-être comme j'ai pensé un problème connu avec la version 64 bits mais ça m'étonne quand même vu que c'est une fonctionnalité "de base" d'Eclipse.