Algorithme , Java
Résolu
Jiko-java
Messages postés
186
Date d'inscription
Statut
Membre
Dernière intervention
-
Jiko-java Messages postés 186 Date d'inscription Statut Membre Dernière intervention -
Jiko-java Messages postés 186 Date d'inscription Statut Membre Dernière intervention -
Bonjour, voilà Je suis actuellement sur un mini Programme qui consiste a demandé à un utilisateur d'entré un jours (compris entre 1 et 31 ) et un mois ( compris entre 1 et 12) , Ensuite une fois que le jours et le mois souhaités sont entrés je demande a l'utilisateur de dire à quelle saison correspond cette date , Si la saison entré == a la saison Correcte mon programme affiche "Très bien " dans le cas contraire il affiche "Non c'était" + saison Correcte. Mais c'est là que mon programme présente des défauts à chaque fois il affiche "Non c'était "+ saison Correcte , Bien que La saison entré correspond a la saison Correcte du coup je soupçonne l'égalité entre saison et saison Correcte d’être derrière tout sa . Pouvez-vous m'éclaircir a ce sujet ?
A voir également:
- Algorithme , Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Bonjour,
"Si la saison entré == a la saison Correcte"
La comparaison de deux objets avec == recherche une égalité "physique" entre ces deux objets, est-ce que c'est exactement le même objet ou non, mais dans la plupart des cas ce dont a besoin c'est de comparer les valeurs des objets, est-ce que la valeur est la même que l'autre.
C'est pour cela qu'il faut utiliser la méthode equals() et non l'opérateur ==
"Si la saison entré == a la saison Correcte"
La comparaison de deux objets avec == recherche une égalité "physique" entre ces deux objets, est-ce que c'est exactement le même objet ou non, mais dans la plupart des cas ce dont a besoin c'est de comparer les valeurs des objets, est-ce que la valeur est la même que l'autre.
C'est pour cela qu'il faut utiliser la méthode equals() et non l'opérateur ==
public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Ecrire 'toto' : "); String line = sc.nextLine(); System.out.println("line == 'toto'\t\t"+(line == "toto")); // false System.out.println("line.equals('toto')\t"+line.equals("toto")); // true }
Bonjours , Oui c'est ce que j'avais fait mais en fait dans mon String saisonCorrecte = 'Hiver" par exemple il y'avais un espace du coup lors de ma comparaison avec mon String saison , le programme affichait constamment que les String était != a cause de l'espace justement , Je ne savais pas que les langages de programmations était autant sensible a la casse en même temps comme c'était une comparaison de 2 String fallait s'y attendre a sachant que même un espace est considéré comme un caractère .
Les String en Java représentent de l'UTF-16, soit potentiellement 1 million de caractères différents...
Par exemple il y a une centaine de lettres "A" différentes (
En revanche, il est possible de nettoyer les String pour supprimer les espaces et les comparer sans prendre en compte la casse. Exemple :
Par exemple il y a une centaine de lettres "A" différentes (
A,
a,
à,
â,
ä,
ã...) donc oui deux caractères sont différents à la casse près.
En revanche, il est possible de nettoyer les String pour supprimer les espaces et les comparer sans prendre en compte la casse. Exemple :
String s1 = " abc "; String s2 = " ABC "; System.out.println(s1.trim().equalsIgnoreCase(s2.trim())); // true
String saison = scanner.nextLine();
if(saison.equals(saisonCorrecte)){
System.out.println(" Très bien vous avez Trouvez la bonne saison ");
} else{
System.out.println(" Non C'était la saison :" + saisonCorrecte);
}
switch (mois){
case 1 : System.out.println("Janvier");
case 2 : System.out.println(" Fevrier");
...
}
jusqu’à ce que les 12 mois soient entré