Problème avec un logiciel pour comparer un entree clavier à une grille... [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 octobre 2011
-
Messages postés
2
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 octobre 2011
-
Bonjour, je débute en java et j'ai besoin d'aide au sujet d'un programme que je dois remettre bientôt. Depuis plusieurs jours je travail pour trouver une solution à mon problème. Je dois écrire une fonction qui retourne un booleen et qui permet de vérifier si une grille est remplie ou non. Ici je laisse une grille de 3 chiffres.

mon code permet de vérifier si le tableau est rempli, si l'utilisateur à bien entrée les 3 chiffres. Si erreurs de l'utilisateur un retour false sera retourner et qui donnera une réponse Réponse = false...

import java.util.Scanner;

public class test {

public static boolean check (int[] tab) {
int i = 0;
boolean verif = false;

while ((i<3) && (verif==true)) {
verif = true;


}
return verif;
}

public static void main (String[] args) {

Scanner clavier = new Scanner (System.in);
int[]tab = new int [3];
boolean verif = true;

System.out.println ("Completer la colonne avec 3 chiffres");

for (int i=0; i<3; i++) {
tab[i]= clavier.nextInt();
}
}
}


verif = check (tab);

System.out.println ("Réponse : " +verif);
}
}

2 réponses


Salut,

On doit vérifier que l'utilisateur entre bien 3 chiffres significatifs (différents de zero).

Le contrôle est fait à la fin de la saisie des 3 chiffres (on pourait le faire lors de chacune des 3 entrées).

Le tableau tab[] ainsi que boolean verif doivent être visibles des 2 méthodes (main et check).

Pour ce faire on peut les déclarer en variable de la classe Test (avec T majuscule pour respecter les conventions d'écriture)

import java.util.Scanner; 

   public class Test {
      private static int[]tab = new int [3]; 
      private static boolean verif = true; 
   
      public static boolean check () {
         for (int i=0; i<3; i++) {
            System.out.println ("tab[" + i + "] = " + tab[i]);
            
            if( (tab[i] > 0) && (verif==true) )
               verif = true;
            else verif = false;
         }         return verif; 
      } 
   
      public static void main (String[] args) { 
      
         Scanner clavier = new Scanner (System.in);
      
         System.out.println ("Completer la colonne avec 3 chiffres"); 
      
         for (int i=0; i<3; i++) {
            System.out.print("Chiffre " + (i +1) + " : "); 
            tab[i]= clavier.nextInt(); 
         }
         
         verif = check (); // Il n'est plus nécessaire de passer tab en param. (ni même de récupérer verif)
// check(); serait suffisant avec check void ( et donc sans return)
      
         System.out.println ("Réponse : " +verif); 
      } 
   } 


Cordialement,
...\ Dan /...
Messages postés
2
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 octobre 2011

Merci beaucoup pour ta rapidité de réponse! Maintenant je comprends mes erreurs.