Problème avec un logiciel pour comparer un entree clavier à une grille...

Résolu
badaboum222 Messages postés 2 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 octobre 2011 - 29 oct. 2011 à 21:28
badaboum222 Messages postés 2 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 octobre 2011 - 30 oct. 2011 à 16:04
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

Utilisateur anonyme
30 oct. 2011 à 08:29
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 /...
3
badaboum222 Messages postés 2 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 octobre 2011
30 oct. 2011 à 16:04
Merci beaucoup pour ta rapidité de réponse! Maintenant je comprends mes erreurs.
0
Rejoignez-nous