2015-01-22 4 views
0

GoTo 사례를 수행 한 후 메뉴로 돌아 가기 위해 사용했는데, GoTo를 사용하는 것이 좋지 않았기 때문에 그 밖의 다른 작업을 수행 할 수 있었습니까? 감사.vb.net -이 인스턴스에서 GoTo를 어떻게 대체합니까?

Menu: 
      Console.WriteLine("----------------------") 
      Console.WriteLine("1 = option1") 
      Console.WriteLine("2 = option2") 
      Console.WriteLine("----------------------") 
      Console.Write("Select an option: ") 
      opts = Console.ReadLine 
      Console.WriteLine("----------------------") 
       Select Case opts 
        Case 1 
Happening: 
         Try 
          Console.Write("Enter a word: ") 
          word = Console.ReadLine 
          Select Case word.ToLower 
           Case Eng(0) 
            Console.WriteLine(Fre(0)) 
           Case Eng(1) 
            Console.WriteLine(Fre(1)) 
          GoTo Menu 
          End Select 
         Catch ex As Exception 
          Console.WriteLine("Invalid input") 
         End Try 
+0

당신이 기능을 만들려고 적이 프로그램을 종료 할 수있는 옵션을 제공하는 것을 잊지 마세요? – CamiloR

+1

루프가 필요합니다. – SLaks

+0

@CamiloR 완전한 초보자이기 때문에 특정 루프와 기능을 시도해 보았지만 지금까지는 저에게 도움이되지 못했습니다. 지식이 부족하기 때문에 가능성이 높습니다. – MD2

답변

2

코드를 묶는 while 루프의 종료를 제어하려면 부울 변수가 필요합니다.

부울 변수가 true 인 동안 루프가 사용자 입력을 읽고 처리하고 메뉴 선택을 다시 인쇄합니다. 부울 변수를 false로 설정하면 루프가 종료됩니다.

Dim runLoop = true 
while runLoop 
    Console.WriteLine("----------------------") 
    Console.WriteLine("1 = option1") 
    Console.WriteLine("2 = option2") 
    Console.WriteLine("3 = EXIT") 
    Console.WriteLine("----------------------") 
    Console.Write("Select an option: ") 
    opts = Console.ReadLine 
    Console.WriteLine("----------------------") 
    Select Case opts 
     Case "1" 
     Try 
      Console.Write("Enter a word: ") 
      word = Console.ReadLine 
      Select Case word.ToLower 
       Case Eng(0) 
        Console.WriteLine(Fre(0)) 
       Case Eng(1) 
        Console.WriteLine(Fre(1)) 
        runLoop = false 
      End Select 
     Catch ex As Exception 
      Console.WriteLine("Invalid input") 
     End Try   
     case "2" 
      ..... 
     case "3" 
      runLoop = false 
    End Select 
End While 
0

아래의 의사 코드.

Dim goodResultExists As Boolean = False 
While Not goodResultExists 
Console.Write("Enter a word: ") 
         word = Console.ReadLine 
         Select Case word.ToLower 
          case "Ok" 
          goodResultExists = True 
          Case Else 
          Console.Write("Invalid Entry") 

         End Select 
End While