2017-10-15 10 views
0

Je suis extrêmement novice en matière de programmation, car je suis actuellement en train de jouer avec des applications de console. J'ai créé quelques choses comme un écran de connexion et un convertisseur de devises, mais c'était avec l'aide des enseignants. Je n'ai jamais rien fait par moi-même.Y a-t-il une façon plus courte d'écrire ce code?

Je me demande s'il existe un moyen meilleur/plus court d'écrire ceci? Module Module1

Sub Main() 
    Dim x As String 
    Dim Y As String 
    Dim yes As String 
    Dim no As String 
    x = "Please enter your name:" 
    Y = "Please enter 'Y' or 'N'" 
    yes = "Y" 
    no = "N" 
    Console.WriteLine(x) 
    Console.ReadLine() 
    Console.WriteLine("Do you wish to continue?") 
    yes = Console.ReadLine() 
    Console.WriteLine(Y) 
    If yes = "Y" Then 
     Console.WriteLine("You selected to continue") 
    Else 
     If no = "N" Then 
      Console.WriteLine("You selected to exit") 
      Environment.Exit(0) 
     End If 
    End If 
    Console.WriteLine("TEXT HERE") 'Text here as I don't know what to put next yet 
    Console.ReadLine() 
    Console.ReadLine() 'Just put this here so it doesn't exit straight away 
End Sub 

j'avais déclaré certaines variables juste pour l'essayer plutôt que de simplement avoir Console.WriteLine ("TEXT") en permanence. J'essaie juste de trouver des façons de faire les choses. Je viens de réexécuter le code et j'ai vu que la casse est sensible à l'entrée de l'utilisateur, comment est-ce que je devrais avoir soit Y ou y et N ou n?

+0

Je vote pour clore cette question comme hors-sujet parce qu'elle demande un commentaire. S'il vous plaît voir https://www.codereview.stackexchange.com – Codexer

Répondre

0

Vous pouvez utiliser le code suivant:

Sub Main() 
    Console.WriteLine("Please enter your name:") 
    Console.ReadLine() 
    Console.WriteLine("Do you wish to continue?") 

    Do 
     Dim selectYN As String = Console.ReadLine() 

     If selectYN.ToUpper = "Y" Then 
      Console.WriteLine("You selected to continue") 
      Exit Do 
     ElseIf selectYN.ToUpper = "N" Then 
      Console.WriteLine("You selected to exit") 
      Environment.Exit(0) 
      Exit Do 
     Else 
      Console.WriteLine("Please enter 'Y' or 'N'") 
     End If 
    Loop 

    Console.WriteLine("TEXT HERE") 'Text here as I don't know what to put next yet 
    Console.ReadLine() 
    Console.ReadLine() 'Just put this here so it doesn't exit straight away 
End Sub 

Le code est beaucoup plus minifiés que votre code. J'ai ajouté une boucle jusqu'à ce que l'utilisateur ajoute une réponse valide pour la question oui/non. L'utilisateur doit entrer l'une des valeurs suivantes pour rompre la boucle: n, N, y, Y. Si la valeur n'est pas valide, la question apparaît à nouveau pour lui donner une chance d'entrer à nouveau une nouvelle valeur.

Comment est-ce que je devrais y avoir soit Y ou y et N ou n?

Dans ce cas, vous avez la possibilité de convertir la lettre toLower ou toUpper. Dans l'exemple ci-dessus toUpper est utilisé pour vérifier N et Y.