Simplifier l'écriture en Java
Résolu/Fermé
persepolis7
Messages postés
58
Date d'inscription
mercredi 10 janvier 2018
Statut
Membre
Dernière intervention
16 janvier 2019
-
Modifié le 21 févr. 2018 à 14:06
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 - 21 févr. 2018 à 20:16
persepolis7 Messages postés 58 Date d'inscription mercredi 10 janvier 2018 Statut Membre Dernière intervention 16 janvier 2019 - 21 févr. 2018 à 20:16
A voir également:
- Simplifier l'écriture en Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Écriture facebook - Guide
- Ecriture en gras - Guide
- Java apk - Télécharger - Langages
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
21 févr. 2018 à 14:19
21 févr. 2018 à 14:19
Bonjour,
Il faut utiliser des boucles, parce que là ton code ne fonctionne qu'avec 5 valeurs, mais il faut que ça puisse aussi fonctionner avec 4 valeur, 6 valeurs... ou 50000 valeurs !
Remarque : je ne comprends pas à quoi sert ton tableau mais si ce sont des données décorellées (ce qui semble être le cas), il faudrait plutôt avoir deux tableaux : un String[] et un int[]
Il faut utiliser des boucles, parce que là ton code ne fonctionne qu'avec 5 valeurs, mais il faut que ça puisse aussi fonctionner avec 4 valeur, 6 valeurs... ou 50000 valeurs !
Remarque : je ne comprends pas à quoi sert ton tableau mais si ce sont des données décorellées (ce qui semble être le cas), il faudrait plutôt avoir deux tableaux : un String[] et un int[]
String[] animaux = {"Chat", "Chien", "Elephant", "Tigre", "Ours"}; int[] nombres = {10, 11, 12, 13, 14, 15, 16}; boolean hasAnimal = false; for (String animal : animaux) { if (reponse1.equalsIgnoreCase(animal)) hasAnimal = true; } boolean hasNombre = false; for (int nombre : nombres) { if (reponse2 == nombre)) hasNombre = true; } if (hasAnimal && hasNombre) { // ... }
Modifié le 21 févr. 2018 à 18:22
si les deux valeurs entrée par l'utilisateur correspondent aux valeurs des sous-tableaux, si elles correspondent afficher du texte
tester si les deux valeurs entrée par l'utilisateur ne correspondent pas et afficher du texte
tester si une des deux valeurs entrée ne correspond pas aux valeurs des sous-tableaux, si une des deux ne correspond pas afficher du texte
puis redemandé si oui ou non il souhaite répéter l'action.
J'apprends à utiliser les tableaux multidimensionnelle d'où l'intérêt de d'utiliser deux String (je ne sais si un tableau bidimensionnelle peut comprendre de types de sous tableaux)
Je comprends pas l'ensemble de ton code :
Modifié le 21 févr. 2018 à 19:22
En Java tous les objets héritent de la classe Object et tous les types primitifs peuvent être castés en objets, donc tu peux avoir un Object[][] qui contiendrait n'importe quels objets : des String, des int, etc.
Sachant qu'un tableau est également un objet, donc on pourrait faire un Object[] dont le premier élément est un String[] et le deuxième est un int[]
Mais en pratique, on ne fait jamais ce genre de codes, Java est un langage objet, donc quand on a des données complexes on les structures dans des objets (j'imagine que tu n'as pas encore vu ça, mais tu verras plus tard qu'en fait se poser ce genre de questions n'a pas vraiment de sens), ce qui fait qu'un tableau en Java sera toujours utilisé uniquement avec un seul type de données dedans.
Ce que je cherche à reproduire c'est ton code :
Oublions le double tableau pour l'instant, ça simplifie ton code comme ceci :
La boucle for-each (qui est la plus utilisée en Java) s'écrit
Elle est équivalente à faire
Sauf que dans la plupart des cas (et notamment ici) l'indice n'a aucune importance, c'est pour ça que la boucle for-each est plus pratique (ainsi que d'autres avantages).
Mais on pourrait très bien le faire quand même avec une boucle for :
Ce que tu veux faire avec tes c'est juste dire que si la réponse est égal à un animal alors ta réponse c'est , donc si le tableau est vide par exemple, la réponse doit être false (il n'y a aucune valeur du tableau qui est égale), donc au départ je mets .
Puis je regarde une à une les valeurs des animaux, avec le même test equalsIgnoreCase qu'avant, et s'il y en a une qui est égale, je fait ce qui sera mon résultat final, sauf si j'en ai trouvé aucun, dans ce cas la réponse sera false puisque la valeur de départ n'a pas changée.
Remarque : si tu veux tu peux remettre ton double tableau avec même si je pense toujours - au delà du simple exercice de faire un double tableau - que cela n'a pas de sens ici.
21 févr. 2018 à 20:16