Condition if() java
Résolu/Fermé
Utilisateur anonyme
-
8 août 2012 à 14:25
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 8 août 2012 à 21:34
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 8 août 2012 à 21:34
A voir également:
- Condition if() java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Excel cellule couleur si condition texte - Guide
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié par KX le 8/08/2012 à 15:07
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.
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
"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
Utilisateur anonyme
8 août 2012 à 21:31
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()); } }
;-)
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié par KX le 8/08/2012 à 21:34
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); } } }