Explication booléens
Trust_28
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis actuellement le programme France IoI pour javascool.
Mais je bloque sur les explications qu'ils fournissent pour les booléens:
Questions:
- A quoi sert le "true" ou "false"? Dans le cas de l'exemple, à quoi sert décrire "true" pour "toujoursVraie"?
- Quelle est la différence entre "int estSenior" et "boolean estSenior"? Qu'est-ce que cela change de mettre boolean?
Je ne trouve pas leurs explications claires du tout...
Je suis actuellement le programme France IoI pour javascool.
Mais je bloque sur les explications qu'ils fournissent pour les booléens:
Les booléens
En JavaScool le programme suivant :if (prix < 10) { println("Pas cher"); }
peut aussi s'écrireboolean estPasCher = (prix < 10); if (estPasCher) { println("Pas cher"); }
On a donc stocké dans la variable estPasCher la valeur de la comparaison prix < 10 pour la réutiliser plus tard dans un if.
La variable estPasCher est appelée une variable booléenne ou un booléen car elle ne peut être que vraie ou fausse, ce qui correspond en JavaScool aux valeurstrue(pour vrai) etfalse(pour faux).
On a déclaré la variable estPasCher comme étant de type boolean pour bien indiquer qu'il s'agit d'une variable booléenne.
Ainsi en JavaScool, (3 < 10) vaut true et (11 == 7) vaut false. true et false sont donc des constantes du langage, au même titre que 0, 1 ou encore 42.
On peut donc affecter directement la valeur true ou false à une variable :boolean toujoursVraie = true; if (toujoursVraie) { println("La variable toujoursVraie vaut 'true'"); }
On peut également utiliser les opérateurs && et || comme le montre l'exemple suivant :boolean estSenior = (age >= 60); boolean estJeune = (age <= 25) && (age >= 12); boolean reductionPossible = (estSenior || estJeune); if (reductionPossible) { println("Réduction!"); }
Questions:
- A quoi sert le "true" ou "false"? Dans le cas de l'exemple, à quoi sert décrire "true" pour "toujoursVraie"?
- Quelle est la différence entre "int estSenior" et "boolean estSenior"? Qu'est-ce que cela change de mettre boolean?
Je ne trouve pas leurs explications claires du tout...
Configuration: Windows / Firefox 69.0
A voir également:
- Explication booléens
- Foyer netflix explication - Accueil - Guide streaming
- Paris multiple 2/6 explication ✓ - Forum Loisirs / Divertissements
- Another earth explication fin - Forum Cinéma / Télé
- La blague des trois nains explication ✓ - Forum Loisirs / Divertissements
- Chambre 1408 explication fin ✓ - Forum Cinéma / Télé
3 réponses
Bonjour,
c'est aussi une façon de s'assurer que la variable ne contienne que ce que tu attends...
Si ta variable doit contenir "vrai" ou "faux" .. il serait dommage qu'elle contienne autre chose ( NULL, 50 ... )
Autrement dit, si tu demandes à quelqu'un :" Aimes tu le Java" .. tu attends une réponse de type "Oui" ou "Non" .. et pas ... "42"
Et puis c'est aussi (et surtout) une question de mémoire..
Un INT utilise 4 bytes
Un BOOLEEN utilise 1 Bit
https://www.w3schools.com/java/java_data_types.asp
.
c'est aussi une façon de s'assurer que la variable ne contienne que ce que tu attends...
Si ta variable doit contenir "vrai" ou "faux" .. il serait dommage qu'elle contienne autre chose ( NULL, 50 ... )
Autrement dit, si tu demandes à quelqu'un :" Aimes tu le Java" .. tu attends une réponse de type "Oui" ou "Non" .. et pas ... "42"
Et puis c'est aussi (et surtout) une question de mémoire..
Un INT utilise 4 bytes
Un BOOLEEN utilise 1 Bit
- 1 Byte = 1 octet = 8 bits
https://www.w3schools.com/java/java_data_types.asp
.
Bonjour
on parle de boolean car cela vient de l'algèbre de Bool, du nom du mathématicien anglais qui a décrit "la logique", c'est à dire les relations mathématiques dans un système à 2 états:
vrai / faux est la généralisation des ces 2 états.
L'algèbre de Bool, comme l'algèbre "classique" se repose sur quelques opérations de bases:
Chaque opération dispose de d'une table de vérité, qui décrit son comportement, comme vrai et faux sont longs à écrire et pas universel (chaque langue est différente), faux est représenté par 0 et vrai par 1.
Dans une table de vérité il y a 1 ou des variables d'entrée (a, b, c etc...) et une sortie (s).
La table du Non est
Ou
Et
Ou Exclusif
On peut ensuite combiner ces opération, Non Ou, Non Et, etc....
Pour écrire des équations on se sert de signes mathématiques. Le Non est symbolisé par une barre horizontale au dessus de la variable, le Ou par le signe +, le Et par la multiplication dans toutes ses formes, le Ou Exclusif par un + dans un cercle:
Par exemple
Cet algèbre est fondateur de l'automatisme puis plus tard de l'électronique numérique et donc de l'informatique.
Il est important de connaitre les bases de cet algèbre quand on développe.
on parle de boolean car cela vient de l'algèbre de Bool, du nom du mathématicien anglais qui a décrit "la logique", c'est à dire les relations mathématiques dans un système à 2 états:
- éteint / allumé
- arrêt / marche
- bas / haut
- etc
vrai / faux est la généralisation des ces 2 états.
L'algèbre de Bool, comme l'algèbre "classique" se repose sur quelques opérations de bases:
- Non qui retourne l'état inverse de la valeur d'entrée
- Ou
- Et
- Ou exclusif
Chaque opération dispose de d'une table de vérité, qui décrit son comportement, comme vrai et faux sont longs à écrire et pas universel (chaque langue est différente), faux est représenté par 0 et vrai par 1.
Dans une table de vérité il y a 1 ou des variables d'entrée (a, b, c etc...) et une sortie (s).
La table du Non est
a | s
0 | 1
1 | 0
Ou
a b | s
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 1
Et
a b | s
0 0 | 0
0 1 | 0
1 0 | 0
1 1 | 1
Ou Exclusif
a b | s
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
On peut ensuite combiner ces opération, Non Ou, Non Et, etc....
Pour écrire des équations on se sert de signes mathématiques. Le Non est symbolisé par une barre horizontale au dessus de la variable, le Ou par le signe +, le Et par la multiplication dans toutes ses formes, le Ou Exclusif par un + dans un cercle:
Par exemple
_ s = ab + cdsignifie (a et b) ou (non(c) et d)
Cet algèbre est fondateur de l'automatisme puis plus tard de l'électronique numérique et donc de l'informatique.
Il est important de connaitre les bases de cet algèbre quand on développe.
Si j'ai bien compris toutes les explications que vous me donnez, pour le programme des explications
Si la fonction "boolean réductionPossible" est "true", ça affichera "Réduction!" si "false", ça n'affichera rien car le résultat de "réductionPossible n'est pas bon, c'est ça?
boolean estSenior = (âge >= 60); boolean estJeune = (âge <= 25) && (age >= 12); boolean réductionPossible = (estSenior || estJeune); if (réductionPossible) { println("Réduction!"); }
Si la fonction "boolean réductionPossible" est "true", ça affichera "Réduction!" si "false", ça n'affichera rien car le résultat de "réductionPossible n'est pas bon, c'est ça?
Salut, Java est dit un langage "typé" car toutes les variables ou valeurs ont un type définit.
Comme dit précédemment ça permet d'optimiser la gestion de la mémoire et aussi de s'assurer d'avoir le bon 'type' quand on utilise les valeurs. Le cas des booléen est particulier et aussi le plus proche de la 'pensée' de la machine mais admettons que nous attendions un nombre entier utiliser un type int permet d'interdire une valeur décimale, utiliser un chaîne de caractères (string) permet d'éviter d'avoir un nombre etc...
Cela permet d'optimiser un programme en sécurisant les valeurs qui sont admise par le programme et de mieux gérer les ressources nécessaires.
Pour les histoires de Bool(blague d'informaticien!) c'est aussi un schéma logique(dans le sens mathématique) qui est associé aux algorithmes(structure du programme) et à ses embranchements logique; on parle aussi de test logique:
Vrai Faux évaluant une 'expression' ou sa valeur.
C'est très utile de 'penser' en binaire car la programmation n'a que ce mode là de 'réflexion', un programme ne sait déterminer que vrai ou faux et donc toute l'organisation de celui ci est basé sur ce modèle comme évoqué par Whismerhill.
Comme dit précédemment ça permet d'optimiser la gestion de la mémoire et aussi de s'assurer d'avoir le bon 'type' quand on utilise les valeurs. Le cas des booléen est particulier et aussi le plus proche de la 'pensée' de la machine mais admettons que nous attendions un nombre entier utiliser un type int permet d'interdire une valeur décimale, utiliser un chaîne de caractères (string) permet d'éviter d'avoir un nombre etc...
Cela permet d'optimiser un programme en sécurisant les valeurs qui sont admise par le programme et de mieux gérer les ressources nécessaires.
Pour les histoires de Bool(blague d'informaticien!) c'est aussi un schéma logique(dans le sens mathématique) qui est associé aux algorithmes(structure du programme) et à ses embranchements logique; on parle aussi de test logique:
Vrai Faux évaluant une 'expression' ou sa valeur.
C'est très utile de 'penser' en binaire car la programmation n'a que ce mode là de 'réflexion', un programme ne sait déterminer que vrai ou faux et donc toute l'organisation de celui ci est basé sur ce modèle comme évoqué par Whismerhill.
Du coup, si "true" il sera écrit "J'aime Java", si "false" "Je n'aime pas Java". C'est ça?
Le "true" et "false" ne servent qu'à avoir une réponse "vraie" ou "faux"? Une réponse binaire?
Oui.
Booleen = réponse binaire => 1 ou 0 => true ou false
au passage.. renseigne toi sur l'algèbre de Bool
Une petite précision : "Un INT utilise 4 bytes. Un BOOLEEN utilise 1 Bit".
En théorie on pourrait, mais en pratique la JVM fait une conversion des boolean en int (4 octets)
Il y a cependant une optimisation pour les tableaux de booléens où ils sont convertis en byte (1 octet)
Voir Java Virtual Machine Specification