Se connecter / S'enregistrer
Votre question

Probléme for (Java)

Tags :
  • string
  • Programmation
Dernière réponse : dans Programmation
15 Novembre 2010 00:01:49

  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package pl6_ex4;
  6.  
  7. import java.util.Scanner;
  8. import java.lang.String;
  9.  
  10. /**
  11. *
  12. * @author Diogo Leite
  13. */
  14. public class Main {
  15.  
  16. /**
  17. * @param args the command line arguments
  18. */
  19. public static void main(String[] args) {
  20. Scanner in = new Scanner(System.in);
  21. int x, n, i = 0;
  22. int[] v = new int[50];
  23.  
  24. System.out.println("Combien de valeurs ?");
  25. n = in.nextInt();
  26. for (i = 0; i < n; i++) {
  27. System.out.println("introduis " + (i + 1) + "º valeur");
  28. v[i] = in.nextInt();
  29.  
  30. }
  31. for (int f = 0; f < n - 1; f++) {
  32. for (int j = f + 1; j < n; j++) {
  33. if (v[i].compareTo(v[j]) > 0) {
  34. x = v[i];
  35. v[i] = v[j];
  36. v[j] = x;
  37. }
  38. System.out.println("Ordre inverse");
  39. for (int f=0; f<n,f++)
  40. {
  41.  
  42. System.out.println(v[i]+"\n");
  43. }
  44. }
  45. // TODO code application logic here
  46.  
  47.  
  48. }



est-ce que quequ'un saurais me dire pourquoi j'ai deux fois la même erreur dans ce for ( for (int f=0; f<n,f++) )
et ce if (if (v.compareTo(v[j]) > 0) {)

si c'est possible me le corrigé :-S

merci d'avance

Autres pages sur : probleme for java

15 Novembre 2010 00:18:21

Bonsoir,

Tu devrais:
  • Utiliser les balises code pour présenter ton programme
  • Indenter ton code
  • Utiliser des noms de variable plus explicites ( pas difficile )
  • Donner les erreurs que tu reçois

    Pour le for, tu déclares une variable f alors qu'elle est déjà déclarée plus haut.

    Pour le if, tu déclares v de la façon suivante:
    1. int[] v = new int[50];

    Donc v est un entier, tu ne peux pas appeler de méthode compareTo dessus.
    m
    0
    l
    a c 232 L Programmation
    15 Novembre 2010 09:48:27

    Salut,

    J'ai rajouté les balises code.
    Pour compléter un peu ce que dit Edyr:
  • C'est bizarre de déclarer un tableau à 50 éléments alors que tu demandes la taille du tableau derrière. Tu devrais plutôt récupérer le nombre de valeurs, et créer le tableau en fonction de cette taille. Parce que si la personne en met 51, ton programme va planter.
  • Ensuite, contrairement à ce que t'as dit Edyr sur v qui est un entier et que tu ne peux pas appeler de méthode compareTo dessus, si tu peux. Mais le problème est que i n'est plus défini au niveau où tu l'utilises avec ton compareTo. le i est déclaré dans ta 1ère boucle, il n'existe plus après.
  • Comme dit par Edyr pour la variable f, c'est qu'elle est déjà déclarée plus haut
  • et il semblerait que tu aies oublié de fermer une accolade.
    m
    0
    l
    Contenus similaires
    Pas de réponse à votre question ? Demandez !
    15 Novembre 2010 21:10:21

    OmaR a dit :
    Ensuite, contrairement à ce que t'as dit Edyr sur v qui est un entier et que tu ne peux pas appeler de méthode compareTo dessus, si tu peux.


    Appeler une méthode sur une variable primitive ça me semble assez osé :D 

    Peut être que Java le permet avec de l'autoboxing mais c'est clairement pas une bonne idée de compter là dessus. Pour moi ce genre de racourci montre clairement une mauvaise compréhension du paradigme objet. Mais merci d'avoir corrigé ;) 
    m
    0
    l
    a c 232 L Programmation
    16 Novembre 2010 00:23:40

    Edyr a dit :
    Appeler une méthode sur une variable primitive ça me semble assez osé :D 

    Peut être que Java le permet avec de l'autoboxing mais c'est clairement pas une bonne idée de compter là dessus. Pour moi ce genre de racourci montre clairement une mauvaise compréhension du paradigme objet. Mais merci d'avoir corrigé ;) 


    Hmm, je peux me tromper hein ça fait longtemps que j'ai pas fait de Java, mais il me semble que ça marche:
    http://download.oracle.com/javase/1.4.2/docs/api/java/l...(java.lang.Object)
    Après, peut-être qu'Integer n'est pas équivalent à int.


    Edit: en cherchant un peu plus, il semblerait que tu avais raison en fait:
    http://leepoint.net/notes-java/data/expressions/22compa...
    A voir, je peux pas tester là comme ça.
    m
    0
    l
    Tom's guide dans le monde
    • Allemagne
    • Italie
    • Irlande
    • Royaume Uni
    • Etats Unis
    Suivre Tom's Guide
    Inscrivez-vous à la Newsletter
    • ajouter à twitter
    • ajouter à facebook
    • ajouter un flux RSS