Condition if() java
Résolu/Fermé
Utilisateur anonyme
-
8 août 2012 à 14:25
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 8 août 2012 à 21:34
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 8 août 2012 à 21:34
A voir également:
- Condition if() java
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Java apk - Télécharger - Langages
- Excel condition couleur - Guide
- If exist ✓ - Forum Autoit / batch
2 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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
HackTrack
Messages postés
618
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2013
972
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
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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);
}
}
}