2012-04-08 2 views
0

Ich habe eine Prozedur am Ende meiner Konsolenanwendung, die den Benutzer auffordert, entweder Enter zu drücken, um das Programm zu beenden, oder s einzugeben, um eine weitere Suche durchzuführen. Das Problem, das ich habe, ist egal, was der Benutzer am Ende des Programms eingibt. Was ich möchte, ist, wenn der Benutzer s eingibt, beginnt das Programm von vorne und lässt den Benutzer eine andere Suche durchführen. Das Programm ist prozedural und ich muss einen Weg finden, am Anfang des Programms zurück zu starten, der den Benutzer auffordert, einen Namen einzugeben, um zu suchen. Wie kann ich das erreichen?Wie kann ich das Programm beenden oder das Programm basierend auf Benutzereingaben in einer Visual Basic-Konsolenanwendung starten?

Hier ist das Verfahren, das ich Probleme mit, die ich:

Private Sub terminateProgram() 
    Console.Write("Press the enter key to end the program or press s to search again") 
    If (CStr(Console.ReadLine()) = "s") Then 
     Console.WriteLine("It worked") 
    Else 
     Console.Read() 
    End If 

Hinweis: Wie Sie sehen können, ich schreibe nur „Es hat funktioniert“, um das Fenster nur zumindest versuchen und erfassen die " s "eingegeben werden.

Antwort

1

Struktur Ihres Programm in einer Schleife und Ihre Methode einen boolean zurück, so dass, solange Ihre Methode gibt „False“ das Programm am Laufen hält:

Sub Main() 
    Do 

    Loop While Not terminateProgram() 
End Sub 

Public Function terminateProgram() As Boolean 
    Console.Write("Press the s key to search again or any other key to end the program") 
    Return Console.ReadKey(True).KeyChar.ToLower() <> "s" 
End Function 
Verwandte Themen