Linquisiteur
-
Modifié par Linquisiteur le 27/03/2013 à 22:10
Bonjour, je suis en train de travailler sur un programme dont le but est le suivant
on entre des mots a la suite les un des autres (5 au total) et on les compares à 2 lettres choisi au début du programme par l'utilisateur et on valide le produit.
Bien sure il me reste d'autre méthode a implémenter mais on doit faire étapes par étape et je dois tenter de boucler ce programme cette nuit..
Enfin bref j'avais un problème dans ma méthode extraireMot mais en essayant de le résoudre je n'arrive même plus à l'exécuter alors que je n'ai aucune erreur (je suis sur eclipse)
Et plus moyen de revenir en arrière.. enfin je ne vois pas l'erreur ce que est gênant pour avancer dans le travail..
import java.util.Arrays;
import java.util.Scanner;
public class Methode3 {
//____________X_ET_Y_________________\\
/**
* Testes deux String pour vérifier qu'elles sont de taille 1 et que leur unique caractère est différent.
* @param x la première chaîne à tester
* @param y la deuxième chaîne à tester
* @return true si toutes les conditions sont vérifiées, false sinon
*/
public static boolean DiffChar(String x, String y)
{
boolean bon = false;
if (x.length() == 1 && y.length() == 1 && x.charAt(0) != y.charAt(0) && x!=null && y!=null) bon = true;
return(bon);
}
/**
* vérifie si les produit sont valide et les trie si valide dans un autre tableau ou il seront triées par ordre lexicographique
* @param mot est initialisé d'un tableau de car
* @param car_mot est un tableau de string vide
* @param i est initialisé
* @param x est déjà initialisé
* @param y est déjà initialisé
* @return quand le mot est refusé ou valider et dans tab2
*/
public static void extraireMots(String mot,char[] car_mot, int i, char x ,char y)
{
System.out.println(mot +car_mot[0] +i +x +y); // a supr
//______________________________________________AJOUT________________________
int cpt = 0;
boolean ok = true;
while (cpt < mot.length() || ok == true ) //temps que on a pas parcouru tout les caractère d'un mot on boucle
{
if (car_mot[cpt] == x || car_mot[cpt] == y) //on vérifie la lettre avec les 2 variables interdite
{
System.out.print("Produit refuser");
ok = false;
cpt = mot.length(); //on termine directement la boucle
}
cpt ++;
if (cpt == mot.length() & ok == true) //si tout les caractère sont correcte on valide
{
System.out.println("Produit valider");
}
cpt++;
}
//___________________________________________________
//methode2(mot,car_mot,i);
}
/*
public static void methode2(String mot ,char[] car_mot, int i)
{
}
*/
public static void main(String[] args) {
System.out.println("Entrer vos paramètres (1 lettre par paramètre) ");
boolean bon = false;
String xx;
String yy;
Scanner clavier = new Scanner(System.in);
do {
System.out.println("Entrez x: ");
xx = clavier.nextLine(); //enregistre x
System.out.println("Entrez y: ");
yy = clavier.nextLine(); //enregistre y
bon = DiffChar(xx,yy);
xx = xx.toLowerCase(); //j'accepte que l'on me rentre les lettres x et y en maj
yy = yy.toLowerCase(); //mais je les retransformes en min
} while (bon == false); //dans cette boucle entrer x et y temps que il ne sont pas bon
char x = xx.charAt(0);
char y = yy.charAt(0);
System.out.println("Bienvenue au marché de Pad"+x+"pad"+y);
System.out.println("Entrez vos course: max 100 caractère par mot, 5 achats maximum");
int i=5;
int cpt = 0;
int cpt_mot=1;
boolean ok;
String mot = "";
while (cpt_mot < i+1)
{
ok = false;
while (ok == false)
{
System.out.print("mot numero: " +cpt_mot);
mot = clavier.nextLine();
if(mot.length()<100 & mot.length()>0) ok = true;
}
char[] car_mot = new char [100];
while (cpt < mot.length())
{
car_mot[cpt] = mot.charAt(cpt);
extraireMots (mot,car_mot,i,x,y);
cpt++;
}
cpt=0;
cpt_mot ++;
System.out.println("Voici vos courses trié: "+Arrays.toString(car_mot));
}
//___________ICI J AI INITIALISER TOUT POUR LA METHODE 3
}
}
J'ai poster tout le code au cas ou mais l'erreur que dans la méthode cité