vue
Faandemanga Messages : 35 | Bonjour, Il y a un truc qui m'intrigue... string[] jours = new string[] { "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche" }; Ça se lit comment par l'ordinateur?: while (i < jours.Length && !trouve) Tant que trouve = true? Mais ce n'est pas le cas dès le départ! Ou bien tant que trouve = false? Mais le ! ne devait il pas inverser la condition? Si quelqu'un pouvait m'éclaircir. |
vendredi 11 octobre 2013 (Dernière édition vendredi 11 octobre 2013)
| |
Vanyali Messages : 1298 | Alors je n'ai jamais fait de C# mais bon globalement étant une suite au C++ et au java, je pense qu'il a conservé le ! pour indiquer l'opérateur logique non. donc le !trouve donnera true si trouve est à false et false si trouve est à true. Quel est le problème avec ce code en fait ? ça aiderait pour trouver l'erreur X) |
vendredi 11 octobre 2013
| |
Homer Messages : 1925 | Devancer de quelques secondes |
vendredi 11 octobre 2013
| |
Faandemanga Messages : 35 | Il y a pas d'erreur, le programme marche, c'est juste que je trouvais l'utilisation d'une variable seule un peu mystérieuse. Si j'ai bien compris. En faite pour toute opération conditionnelle dans laquelle on utilise une variable seule, l'ordinateur lit non pas EGALE, mais PAS EGALE. Ainsi while (!trouve) signifie: Tant que trouve PAS EGALE à !trouve(=true). De même pour if (!trouve) on a: Si trouve PAS EGALE à !trouve. C'est bien ça? |
samedi 12 octobre 2013
| |
Vanyali Messages : 1298 | non on devrais traduire par tant que !trouve est vrai car !trouve ce n'est pas trouve c'est non-trouve si tu parle en terme de logique. Je pense qu'il faudrait que tu lise quelques truc su la logique booléenne et ses opérateurs (oui, non, ou, et , non ou, non et , ou exclusif,...) ça pourrait t'aider à comprendre la logique. mais dans le cas présent si on doit essayer de se placer à la place de l'interpréteur, il va d'abords chercher la valeur de trouve. il voit que c'est false, mais ils voit aussi qu'il y a un ! donc il inverse le booléen et dit que !trouve est à true et il donne ça au while qui fait ok c'est bon c'est true alors je continue ! Mais tu pourrais aussi écrire trouve == false ça ferais exactement la même chose ( c'est peut être = en C# pour tester l'égalité je sais plus X) ) |
samedi 12 octobre 2013 (Dernière édition lundi 14 octobre 2013)
| |
Faandemanga Messages : 35 | Merci pour l'explication. Sinon oui en C# c'est toujours == qu'on utilise pour tester l'égalité. |
samedi 12 octobre 2013
| |
Faandemanga Messages : 35 | En gros sa revient à: Tant que !trouve == true |
samedi 12 octobre 2013
| |
Faandemanga Messages : 35 | Mais du coup ça aurait revenu au même si on avait écrit: while(trouve) |
samedi 12 octobre 2013
| |
Homer Messages : 1925 | non, au contraire, si c'est !trouve, c'est donc équivalent à while(trouve == false) |
samedi 12 octobre 2013
| |
Vanyali Messages : 1298 | en fait while attends un boolean avec la valeur true ou sinon il quitte, donc !trouve ça équivaut à !trouve == true (parce que faire !trouve == true ça renvoie aussi un booleen, le même que !trouve parce qu'on lui demande si c'est true et si !trouve est true alors ils renvoie true parce que c'est égal et dans le cas contraire false parce que ce n'est pas vrai c'est donc redondant. c'est pas très parlant dans ce cas car on manipule des booléens mais l'opérateur ! ne s'applique que sur des booléens en fait ) |
lundi 14 octobre 2013
|
Aperçu (pas encore publié) | |
Kommunauty © Tous droits réservés
Contact /
Charte & Mentions légales /
Hebergement gratuit /
Bon plan hébergement /
Aide B2i