Exercice a résoudre en java

r.mima Messages postés 2 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
slt tout la monde j'ai un exercice a résoudre ,c'est :Ecrire un programme qui demande a l'utilisateur de saisir 10 entier dans un tableau ainsi qu'un entier V,ensuite Ecrire une fonction qui recherche si V existe dans ce tableau ou non.
quand j'exécute mon programme il me demande d'entrer les 10 valeurs ,mais lors ce que j'appelle la fonction qui recherche si v se trouve dans le programme il ne fait rien voila mon code source
merci d'avance
public class Exercice2{        
     
      
   
    public static void main(String[] args) {
       
      int t[]=new int[10]; 
        int v=10;
        int i;
       //int[]t=new int [10];
        /*int[]t={10,1,5,14,8,7,5,2,4,12};*/
       System.out.println("entrer les valeurs de votre tableau");
       for(i=0;i<t.length-1;i++){
       Scanner sc =new Scanner(System.in);
       int n= sc.nextInt();
     
    Exercice2.F(t, 10);
       }
         
      
    }
    /*la methode1*/
    
      public static void  F(int[]t,int v){
      int i; 
      for(i=0;i<t.length;i++){
    if(t[i]==10)
            System.out.println("la valeur v existe");
           return;
       }
           System.out.println("v n'extsti pas");
        
        }
       
    
}

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Déjà il n'y a aucune raison que tu appelles
    Exercice2.F(t, 10);
    à l'intérieur de ta boucle for, il faudrait le faire uniquement après avoir saisi toutes les valeurs de ton tableau. Mais attention car en faisant
    i<t.length-1
    tu ne vas prendre que 9 valeurs, pas 10.

    Quant à ton problème c'est parce que le return dans la méthode F s'exécute toujours, dès le premier tour de boucle.

    for(i=0;i<t.length;i++) {
    
        if (t[i]==10)
            System.out.println("la valeur v existe");
    
        return;
    }

    Il faudrait plutôt mettre ton return dans le if :
    for(i=0;i<t.length;i++) {
    
        if (t[i]==10) {
            System.out.println("la valeur v existe");
            return;
        }
    }
    0
    1. r.mima
       
      merci de m'avoir répondu
      0
    2. r.mima
       
      j'ai exécuter a nouveau mais le traitement sur la boucle for ne marche pas il m'affiche toujours
      ("v n'existe pas")
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      Effectivement, il y a encore (au moins) un problème : lorsque tu saisis tes valeurs au clavier, tu les mets dans une variable n, mais tu as oublié de les mettre dans ton tableau !
      0