La Conversion de la chaîne “a” de type 'Boolean' n'est pas valide
Cela m'a vraiment confus. Je suis en train de faire une application console visual basic que si l'utilisateur entre 'A' ou 'a', alors le programme doit faire "x", mais qui ne fonctionne pas. L'erreur que j'obtiens est:
Conversion de la chaîne "a" de type 'Boolean' n'est pas valide.
Voici mon code:
Module Module1
Sub Main()
Dim Selection As String
Console.WriteLine("Please select your function:")
Console.WriteLine("* To convert binary to decimal, press A,")
Console.WriteLine("* Or to convert decimal to binary, press B")
Selection = Console.ReadLine
If Selection = "A" Or "a" Then
Console.WriteLine("This will be A")
ElseIf Selection = "B" Or "b" Then
Console.WriteLine("This will be B")
ElseIf Selection = Not "A" Or "a" Or "B" Or "b" Then
Console.WriteLine("Please try again")
Do Until Selection = "A" Or "a" Or "B" Or "b"
Loop
End If
End Sub
Ce que devrait être la bonne utilisation de la Ou dans ce morceau de code pour le faire fonctionner correctement?
Merci,
Jake
- Vous devez également fournir à l'utilisateur avec une voie d'évacuation, comme "Entrez Q pour quitter."
- Merci, j'ai ajouté un maintenant.
Vous devez vous connecter pour publier un commentaire.
Votre
If
clauses devraient être:Les clauses entre les
Or
devrait chaque être des expressions booléennes, et"a"
est tout simplement un personnage, pas une expression booléenne.ElseIf Not Selection = "A" Or Not Selection = "a" Or Not Selection = "B" Or Not Selection = "b" Then
mais vous avez vraiment besoin de penser à ce que cela signifie... Vous devriez probablement utiliser desAND NOT
au lieu deOR NOT
.Je voudrais suggérer de changer la chaîne saisie en majuscules avant les instructions if. En outre, la dernière d'autre si l'instruction n'est pas nécessaire et peut être remplacée par une autre.
À l'aide de Sélectionnez Cas est encore une autre alternative:
Select case
est une bien meilleure alternative. J'allais poster un moi-même avant de voir cette réponse. +1