2014-10-31 2 views
-1

Когда я делаю код без команды goto, он работает, но когда я добавляю :Start, он получает 8 ошибок.Команда goto не работает

Вот соответствующий код:

 :Start 
     Console.Write("Do you want the yes or no?"); 
     string what = Console.ReadLine(); 
     switch (what) 
     { 
      case "yes": 
       Console.WriteLine("You choose yes"); 
       break; 
      case "no": 
       Console.WriteLine("You choose no"); 
       break; 
      default: 
       Console.WriteLine("{0},is not a word",what); 
       goto Start; 
     } 
+0

goto на каком языке? –

+4

Правильный синтаксис ярлыков: 'Start:' –

+1

Пожалуйста, не слишком привыкайте к инструкции goto: https://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF: D – SlySherZ

ответ

1

Правильный синтаксис Start:. Но, вместо того, чтобы goto, вы должны установить это в цикле:

bool invalid = true; 
while (invalid) 
{ 
    Console.Write("Do you want the yes or no?"); 
    string what = Console.ReadLine(); 
    switch (what) 
    { 
     case "yes": 
      Console.WriteLine("You choose yes"); 
      invalid = false; 
      break; 
     case "no": 
      Console.WriteLine("You choose no"); 
      invalid = false; 
      break; 
     default: 
      Console.WriteLine("{0},is not a word",what); 
    } 
} 
+2

'while (invalid)' выглядит более логичным –

+0

@AlexK. да, согласен. –

0

Постарайся "Старт:" вместо ": Начало" так:

Start: 
      Console.Write("Do you want the yes or no?"); 
      string what = Console.ReadLine(); 
      switch (what) 
      { 
       case "yes": 
        Console.WriteLine("You choose yes"); 
        break; 
       case "no": 
        Console.WriteLine("You choose no"); 
        break; 
       default: 
        Console.WriteLine("{0},is not a word", what); 
        goto Start; 
      } 

http://msdn.microsoft.com/en-us/library/aa664740(v=vs.71).aspx

0

Правильный синтаксис для метки является Start:, не :Start

Вы можете реорганизовать свой код опустить заявление Гото вместо (better):

bool continue = true; 
while (continue) { 
    Console.Write("Do you want the yes or no?"); 
    string what = Console.ReadLine(); 
    switch (what) 
    { 
     case "yes": 
      Console.WriteLine("You choose yes"); 
      continue = false; 
      break; 
     case "no": 
      Console.WriteLine("You choose no"); 
      continue = false; 
      break; 
     default: 
      Console.WriteLine("{0}, is not a word",what); 
      break; 
    } 
} 
Смежные вопросы