Booléennes VB.net

Résolu
Utilisateur anonyme - 21 avril 2017 à 14:49
 Utilisateur anonyme - 23 avril 2017 à 18:23
Bonjour, j'aimerais savoir pourquoi


Dim a As Boolean = True

While Not a ' pourquoi ça ne fonctionne pas ?


Console.WriteLine("go")



End While



Dim a As Boolean = False

While Not a ' et la ça fonctionne ...


Console.WriteLine("go")



End While


et je voulais savoir aussi pourquoi

While 1

est considéré comme Vrai

et que

While 0


et considéré comme Faux ? normalement un booléenne est Vrai ou Faux ?

merci

4 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
Modifié le 21 avril 2017 à 15:16
Hello,

De manière générale, une boucle while s'écrit comme ceci:

while(condition_booleenne)
intructions // code exécuté si la condition est vérifiée
end while


Pour que les instructions soient exécutées, il faut que la condition soit vérifiée, c'est-à-dire qu'il faut que
condition_booleenne == True


Dans tes 2 premiers cas, on a
condition_booleenne = Not a


Ce qui revient au test suivant:
Not a == True

Ici, c'est de la logique booléenne. Pour valider ce test, il faut que
a
soit à False. Je te laisse voir la table de vérité de la fonction NOT

Pour le dernier cas, il faut regarder la doc de VB.Net pour le type Boolean. Extrait:
Lorsque Visual Basic convertit des valeurs de type de données numériques en Boolean, 0 devient False et toutes les autres valeurs deviennent True. Lorsque Visual Basic convertit des valeurs Boolean en types numériques, False devient 0 et True devient -1.


@+ 
Buno, Modo CS-CCM 
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... 
The urgent is done, the impossible is underway. For miracles, provide for a delay...
0
"Pour le dernier cas, il faut regarder la doc de VB.Net pour le type Boolean. Extrait: "

While 6 ' Vrai , While 0 Faux , correct ?

console.writeline("go")

End While



Dim a as boolean = -1

While a ' Vrai et si je met le boolean 0 c'est Faux , correct ?

console.writeline("go")

End While


Pour que les instructions soient exécutées, il faut que la condition soit vérifiée, c'est-à-dire qu'il faut que
condition_booleenne == True



Dans tes 2 premiers cas, on a
condition_booleenne = Not a



Dim a As Boolean = True

While Not a ' pourquoi ça ne fonctionne pas ?


Console.WriteLine("go")



End While


Normalement c'est bon non ? car le Boolean est Vrai et on veux qu'il soit Faux et il est pas Faux du coup la condition est Vrai non ?
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
21 avril 2017 à 16:48
1 et 2 sont corrects. Tu peux tester pour voir le résultat.
Dernier cas, pas bon.
car le Boolean est Vrai et on veux qu'il soit Faux
Non. On veut que
Not a
soit Vrai. Donc que
a
soit Faux.
0
Utilisateur anonyme
21 avril 2017 à 18:33
1 et 2 sont corrects. Tu peux tester pour voir le résultat.
Dernier cas, pas bon.

ok ouais j'ai tester mais je demande toujours si c'est correct :)


Non. On veut que Not a soit Vrai. Donc que a soit Faux.

comprend pas , le While il veut juste que la condition soit Vrai ?


Dim a As Boolean = True

While Not a ' tant que a n'est pas Faux , ce qui est Vrai

Console.WriteLine("go")


End While


c'est pas bon ?
0
Utilisateur anonyme > Utilisateur anonyme
21 avril 2017 à 19:02

Dim a As Boolean = True

Do Until Not a ' tant que a n'est pas Faux , et la condition est Fausse il rentre dans la boucle

Console.WriteLine("go")


End While


correct ?
0
Utilisateur anonyme > Utilisateur anonyme
22 avril 2017 à 16:07
c'est bon j'ai tout compris , j'aurais une dernière question sur ce cours

https://openclassrooms.com/courses/apprenez-a-programmer-en-vb-net/conditions-et-boucles-conditionnelles

au chapitre de While il est dit :
 Eh oui, lorsque vous écrivez MaVariable = 10, le programme va faire un petit calcul dans son coin afin de vérifier que la valeur de MaVariable est bien égale à 10 ; si c'est le cas, il transforme cela en un booléen de type Vrai.


"si c'est le cas, il transforme cela en un booléen de type Vrai"

que veut il dire ? le MaVariable = 10 devient MaVariable = True ?
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > Utilisateur anonyme
Modifié le 22 avril 2017 à 16:31
Je me permets d'intervenir
MaVariable = 10 ne deviendra jamais MaVariable = True
MaVariable restera une valeur numérique mais ne deviendra JAMAIS une variable Boolean

Par contre
Test si Mavariable = 10
Dim Maavriable as Integer = 12
Dim Egal10 as boolean ' on définit un Boolean
if MaVariable = 10 then
Egal10 = True
else
Egal10 = False ' c'est la valeur de Egal10
end if


Dim Mavariable as Integer = 10
Dim Egal10 as boolean ' on définit un Boolean
if MaVariable = 10 then
Egal10 = True ' c'est la valeur de Egal10
else
Egal10 = False
end if


Preuve que ce cours a de grosses lacunes et on y trouve de grosses bêtises
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024
Modifié le 22 avril 2017 à 18:50
au chapitre de While il est dit :

Eh oui, lorsque vous écrivez MaVariable = 10, le programme va faire un petit calcul dans son coin afin de vérifier que la valeur de MaVariable est bien égale à 10 ; si c'est le cas, il transforme cela en un booléen de type Vrai.

Cette phrase est à comprendre ainsi
Le While teste si MaVariable = 10 et en déduit si c'est vrai ou pas (True ou False) . Si c'est vrai on exécute ce qu'il y a dans cette boucle While

Et MaVariable est toujours égale à 10 et est toujours de type numérique

Fin de mon intervention
0
Utilisateur anonyme
23 avril 2017 à 18:23
Sujet résolu ;)
-1
Rejoignez-nous