Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Mon collègue de projet a inventé les booléens à plus de 2 états :

bool var;
if (var) { ... }
else if (!var) { ... }
else { ... }

Nous sommes en seconde année d'école d'ingénieurs. PEBKAC.
PEBKAC #6877 proposé par sebyx le 05/02/2013 | 32 commentaires | 👍🏽 👎🏽 +194
True, False, Null.
Commentaire #77667 écrit par ROB le 05/02/2013 à 17h32 | 👍🏽 👎🏽
Le pebkac dépend effectivement beaucoup du langage utilisé

Il y a "undefined" aussi.

Si c'est du C, PEBKAC validé
Commentaire #77671 écrit par l'autre le 05/02/2013 à 17h38 | 👍🏽 👎🏽
Qui sait, peut-être code-t-il dans l'optique que son programme soit exécuté sur un processeur quantique !
Commentaire #77672 écrit par Skefrep le 05/02/2013 à 17h42 | 👍🏽 👎🏽
Oui, Non, Ça dépend.

→ []
Commentaire #77674 écrit par 1138 le 05/02/2013 à 17h43 | 👍🏽 👎🏽
C'est un booléen normand : p'têt ben qu'oui mais p'têt ben qu'non !
Commentaire #77675 écrit par guy777 le 05/02/2013 à 17h44 | 👍🏽 👎🏽
FILE_NOT_FOUND !

En référence à : http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
Commentaire #77678 écrit par Hizin le 05/02/2013 à 17h47 | 👍🏽 👎🏽
Il me semble avoir déjà vu plusieurs exemple de ce PEBKAC sur TDWTF :p
Commentaire #77692 écrit par BSK le 05/02/2013 à 18h07 | 👍🏽 👎🏽
C'était la réponse à la question "quelle temps fera t-il demain ?"
Commentaire #77694 écrit par Clapiote le 05/02/2013 à 18h08 | 👍🏽 👎🏽
Heu, c'est la journée des rappels ?

http://www.pebkac.fr/pebkac/6763/
Commentaire #77698 écrit par but2ene le 05/02/2013 à 18h13 | 👍🏽 👎🏽
Stoil PEBKAC !
http://www.boost.org/doc/libs/1_53_0/doc/html/tribool.html
Oui, les booléens à 3 états existent : Boost l'a fait (et ça rend bien service parfois)...

(Bon, OK, "bool var" enlève un peu d'ambiguité, mais n'empêche qu'il existe des cas où un booléen peut n'être ni true, ni false)
Commentaire #77701 écrit par Super-Troll le 05/02/2013 à 19h13 | 👍🏽 👎🏽
Tout dépend du langage mais si ton booléen est null quand tu fais

If (var)

ça casse...

Au pire tu peux faire

 If !(var == null){}
 ElseIf (var){}
 Else{}
 
Commentaire #77710 écrit par Shadam le 05/02/2013 à 19h36 | 👍🏽 👎🏽
C'est sûrement parce que c'est un booléen de Schrödinger...
Commentaire #77711 écrit par ZK456 le 05/02/2013 à 19h37 | 👍🏽 👎🏽
PEBKAC à toi de croire qu'il existe un type bool en C....
Commentaire #77731 écrit par tony83 le 05/02/2013 à 20h19 | 👍🏽 👎🏽
@tony83:
typedef int bool;

Maintenant il existe un type bool en C.
Et en prime il peut avoir plus de deux états.
Mais si on s'en sert avec les tests indiqués par l'OP, c'est clairement un PEBKAC, quelque soit le nombre d'états.
Commentaire #77739 écrit par Shirluban le 05/02/2013 à 20h49 | 👍🏽 👎🏽
Il faut penser logiques multivaluées ^^
Commentaire #77741 écrit par Alibi le 05/02/2013 à 21h00 | 👍🏽 👎🏽
En Java, le type Boolean est non primitif, et peut donc être nul, et en "codant bien", il n'est pas forcément nécessaire de débuter par le test de la nullité.
Commentaire #77742 écrit par stef le 05/02/2013 à 21h03 | 👍🏽 👎🏽
En Java, Boolean est un objet. Par contre "boolean" est un type primitif.

Voilà la doc : http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.htm[...]
Pour l'objet en lui-même : http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html

Donc, en "codant bien", il n'est pas utile (dans 99% des cas) de passer par un objet :)
Commentaire #77749 écrit par Hizin le 05/02/2013 à 22h13 | 👍🏽 👎🏽
Des booléens à 3 états ? Attendez je viens tout juste d'arriver, reprenez moi si je me trompe. On parle toujours d'algèbre de Boole, imaginé par George Boole, ou bien on est passé dans un monde ou la rigueur scientifique a autant d'importance que dans la (mauvaise) SF de J.J. Abrams ?

Okay merci !

(Je n'arrive pas à me décider sur ton pseudonyme : Tu l'as choisi parce que tu voulais dire une connerie propice à déclencher des débats, ou bien tu crois vraiment à ce que tu dis mais que tu ne voulais pas en avoir trop l'air non plus ?)
Commentaire #77756 écrit par Hart le 05/02/2013 à 23h26 | 👍🏽 👎🏽
Une variable booléenne peut contenir TRUE, FALSE, ou... rien du tout (pourquoi pas ? C'est une variable comme une autre) si c'est géré à la base. Après, niveau utilité, c'est sûr que...
Commentaire #77781 écrit par neeko le 06/02/2013 à 09h12 | 👍🏽 👎🏽
<Troll>En "codant bien" on abandonne le Java pour un langage qui permet des programmes efficaces.</Troll>
Commentaire #77801 écrit par Acorah le 06/02/2013 à 10h39 | 👍🏽 👎🏽
Et donc Boolean n'est pas le type primitif, comme dit dans mon précédent message. Et dans 1% des cas, il peut donc être utile. Mais au final, c'était juste pour le troll :)
Commentaire #77806 écrit par stef le 06/02/2013 à 10h53 | 👍🏽 👎🏽
Même dans ce cas, quand la valeur du booléen est évaluée, elle est fixée.
Commentaire #77872 écrit par Geist le 06/02/2013 à 13h50 | 👍🏽 👎🏽
oui
Commentaire #77878 écrit par Geek-garou le 06/02/2013 à 14h18 | 👍🏽 👎🏽
Mes souvenirs de langage C sont un peu loin, mais si on fait ça en PHP :

$bool = NULL;
 if (!$bool) { echo '$bool est Faux'; } else { echo '$bool est Vrai';}


ça affichera "$bool est Faux", car NULL === 0 === FALSE === "" (empty string)
(j'insiste sur les équivalences, et non les égalités, si on est un tant soit peu strict sur la définition...)
Commentaire #77945 écrit par Clem le 06/02/2013 à 18h52 | 👍🏽 👎🏽
Ben en fait, quand tu dois coder un gros web machin avec plein de ressources de type différentes à gérer et de manière efficace (pas de temps)... T'évites le C.
Commentaire #77948 écrit par but2ene le 06/02/2013 à 18h59 | 👍🏽 👎🏽
Ce n'est pas une question d'utilité mais de définition. Un booléen est une variable à deux états. Si une variable peut avoir plus de deux états différents, elle n'est pas booléenne. Ça reviendrait à considérer "-1" comme une valeur possible pour un entier non signé.

Si vous avez un langage qui permet trois états pour votre booléen, alors vous avez un langage avec une implémentation inexacte de ce type.
Commentaire #77949 écrit par Hart le 06/02/2013 à 18h59 | 👍🏽 👎🏽
non
Commentaire #77986 écrit par Dorni le 06/02/2013 à 22h46 | 👍🏽 👎🏽
ça dépend
Commentaire #78071 écrit par Shirluban le 07/02/2013 à 14h00 | 👍🏽 👎🏽
Ton ami vient juste d'inventer la booléenne de schrodinger
Commentaire #78130 écrit par cgiles le 07/02/2013 à 19h50 | 👍🏽 👎🏽
@Stef : «et en "codant bien", il n'est pas forcément nécessaire de débuter par le test de la nullité.»
Hum, je suis curieux. Comment fais-tu. Mais je pense que mettre un try catch là dessus c'est pas ce qu'on appellerait bien programmer.
Commentaire #78247 écrit par but2ene le 11/02/2013 à 08h26 | 👍🏽 👎🏽
==, pas ===. Ce dernier opérateur compare valeur ET type. 0 == false mais 0 !== false.
Commentaire #81637 écrit par Meep le 02/03/2013 à 01h49 | 👍🏽 👎🏽
Effectivement, par là je voulais dire "équivalent à".
Commentaire #81642 écrit par Clem le 02/03/2013 à 07h23 | 👍🏽 👎🏽