Condition if() java

Résolu/Fermé
Utilisateur anonyme - 8 août 2012 à 14:25
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 8 août 2012 à 21:34
Bonjour,

Je suis en train de me faire un petit programme qui n'a pas une très grande utilité mais qui permet de faire un petit quelque chose en java :)

Le but de ce programme est tout simplement de comparer deux listes de lettres et nous ressort les lettres qui sont dans les deux "tas"....

Le problème est que, au moment du if(numberTry >= 3), il ne rentre jamais dans cette boucle alors que la condition est vérifiée (j'ai regardé avec un system.out....).

J'appelle donc à l'aide pour savoir ce qui ne vas pas xD

Mon code : https://pastebin.com/eDC4aX7B

Merci de votre aide!




A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 8/08/2012 à 15:07
C'est quoi cette manière toute moche de coder avec des variables globales !?

"au moment du if(numberTry >= 3), il ne rentre jamais dans cette boucle"
FAUX, il y rentre ! C'est dans la boucle suivante if(!end) qu'il ne rentre pas !

"end" est initialisée à true dans "init(0)" au début du main, or il n'y a jamais de "end=false", donc la valeur de "end" est toujours true, et if(!end) n'est jamais satisfaite.

tabTry [tab] = writeCharTab(enter(JOptionPane.showInputDialog("Entrez les lettres (série " + numberTry + ")(" + (sizeMax-1) + " caractères max):")));
System.out.println(numberTry);
if(numberTry >= 3)
{
	System.out.println("OK 1");
	similar = finder(tabTry[0], tabTry[1]);
	System.out.println("end = "+end);
	while(!end)
	{
		System.out.println("OK 2");

Mais à mon avis tu as sérieusement besoin de revoir l'architecture de ton programme !
Là ce n'est pas du Java, ça y ressemble très vaguement mais l'esprit n'y est pas...La confiance n'exclut pas le contrôle
0
Utilisateur anonyme
8 août 2012 à 21:31
En simplifié:

package hacktrack.letterfinder;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.swing.JOptionPane;

public class LetterFinder2 {
	private String[] inputs;

	public LetterFinder2(int numberTry) {
		this.inputs = new String[numberTry];
	}

	public Set<String> start() {
		enterText();
		return findCommonsLetters();
	}

	private void enterText() {
		for (int i = 0; i < inputs.length; i++) {
			inputs[i] = JOptionPane
					.showInputDialog("Entrez les lettres (série " + (i+1) + ")");
		}
	}

	private Set<String> findCommonsLetters() {
		Set<String> result = toSet(inputs[0]);
		String input;
		for (int i = 1; i < inputs.length; i++) {
			Set<String> tmpList = toSet(inputs[i]);
			result.retainAll(tmpList);
		}
		return result;
	}

	private Set<String> toSet(String s) {
		Set<String> tmpSet = new HashSet<String>();
		for (int i = 1; i < s.length(); i++) {
			tmpSet.add(s.substring(i, i + 1));
		}
		return tmpSet;
	}

	public static void main(String[] args) {
		LetterFinder2 lf2 = (new LetterFinder2(3));
		System.out.println("Lettres communes: " + lf2.start());
	}
}


;-)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 8/08/2012 à 21:34
Tant qu'on y est, moi j'avais fait ça ;-)

import java.util.Set;
import javax.swing.JOptionPane;

public class LetterFinder 
{    
    private static Set<Character> getSet()
    {
        String str = JOptionPane.showInputDialog("Entrez un ensemble de lettres ('Annuler' pour arrêter)");
        
        if (str==null)
            return null;
        
        Set<Character> set = new java.util.TreeSet<Character>();
        for (char c : str.toCharArray())
            set.add(c);
        
        return set;
    }
    
    public static void main(String[] args)
    {        
        for (Set<Character> localSet=getSet(), globalSet=localSet; localSet!=null; localSet=getSet())
        {
            globalSet.retainAll(localSet);
            JOptionPane.showMessageDialog(null, "Ensemble commun : "+globalSet);
        }
    }
}
0