Problème java programmation sur tableau
lapierre49
Messages postés
3
Statut
Membre
-
ElementW Messages postés 5690 Statut Contributeur -
ElementW Messages postés 5690 Statut Contributeur -
Bonjour,
Je voudrais quand on tape le nom d'un pays qu'il y ai un message avec le nom du pays et sa capitale.Mais ca ne s'affiche pas.Voici mon programme
Et quand je le lance s'a affiche
Merci de me donner la solution.Mon problème c'est que n'arrive pas à faire une recherche dans ce tableau pays
Je voudrais quand on tape le nom d'un pays qu'il y ai un message avec le nom du pays et sa capitale.Mais ca ne s'affiche pas.Voici mon programme
import java.util.Scanner;
public class Pays {
public static void main(String[] args) {
Scanner clavier = new Scanner(System.in);
System.out.println("Entrez un pays...");
String reponse = clavier.nextLine();
String[][] pays = {{"France", "Paris"}, {"Allemagne", "Berlin"}, {"Italie", "Rome"}, {"Espagne", "Madrid"}, {"Etats-Unis", "Whashington"}, {"Portugal", "Lisbonne"}};
//Noms des pays avec leurs capitales
System.out.println("Recherche dans la banque de données...");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; reponse.equals(pays[i][0]) || i > 3; i++){ //Tentative de recherche d'un pays
System.out.println("Le pays est " + pays[i][0] +" sa capitale est " + pays[i][1]);
}
}
}
Et quand je le lance s'a affiche
Entrez un pays...
Italie
Recherche dans la banque de données...
Merci de me donner la solution.Mon problème c'est que n'arrive pas à faire une recherche dans ce tableau pays
1 réponse
-
Bonjour,
Que voulais tu dire parreponse.equals(pays[i][0]) || i > 3
?
Cette condition est toujours fausse (sauf pour "France") donc la boucle s'arrête. Tu pourrais juste la remplacer pari < pays.length
et ajouter un if dans la boucle pour filtrer l'égalité.for (int i = 0; i < pays.length; i++) if (pays[i][0].equalsIgnoreCase(reponse)) System.out.println("Le pays est " + pays[i][0] + " sa capitale est " + pays[i][1]);
Remarque, on peut aussi faire ça avec une boucle for each.for (String[] capitale : pays) if (capitale[0].equalsIgnoreCase(reponse)) System.out.println("Le pays est " + capitale[0] + " sa capitale est " + capitale[1]);