Algorithme , Java

Résolu/Fermé
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 - 27 sept. 2016 à 16:26
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 - 28 sept. 2016 à 15:04
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:

2 réponses

Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
27 sept. 2016 à 16:29
Salut,

Tu utilises des classes?
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
27 sept. 2016 à 16:35
Merci de vote réponse ! Des classes compris par la javaDoc vous voulez dire ?
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
27 sept. 2016 à 16:47
Si c'est le cas non , tout est fait sur une seule et même classe , j'ai pas fait d'import si ce n'est le Scanner , pour pouvoir entré le choix de l'utilisateur. Merci pour votre réponse en tout cas , en ayant regardé de plus près j'ai compris mon erreur et j'en tire une leçon a ne surtout pas négliger en programmation : " La plus part des langage de programmation , sont Sensibles à la Casse !! "
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
27 sept. 2016 à 18:27
Peux-tu me donner la ligne qui compare ce qu'entre l'utilisateur et le mois inscris dans le code.
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
27 sept. 2016 à 18:38
La comparaison je l'effectue simplement pour les 2 chaîne de caractère , En gros c'est sa String saisonCorrecte ="Hiver";
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);
}
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
27 sept. 2016 à 18:44
du coup dans mon branchement conditionnel, j'effectue une comparaison de 2 String , C'est la seule comparaison que j'effectue dans mon programme , quant au mois je l'ai mis dans un switch case du coup chaque entier entré correspond a mois , en gros sa donne sa

switch (mois){
case 1 : System.out.println("Janvier");
case 2 : System.out.println(" Fevrier");
...

}

jusqu’à ce que les 12 mois soient entré
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 sept. 2016 à 18:42
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 ==

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
}
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
27 sept. 2016 à 18:50
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 .
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 27/09/2016 à 20:02
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 (
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
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
27 sept. 2016 à 20:00
Du coup est il possible de comparé plusieurs String soit par exemple String s1 = "Hiver" , String s2 ="hiver" , String s3 ="hiVer" ... Sans que lors de la comparaison le programme ne prennent en compte les majuscules , minuscules ... et qu'il arrive a considéré que "Hiver".equals(hiVER) ?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 sept. 2016 à 20:01
Oui et c'est exactement ce que fait mon exemple avec "abc" et "ABC"...
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
27 sept. 2016 à 20:06
Mais du coup faudra crée autant de variable que de cas possible du mot "Hiver" par exemple : Y'a pas une instruction qui permet de couvrir tout les cas possible simplement en prenant en compte qu'une seule variable ?
0