2015-10-22 3 views
-2

Я пытаюсь создать небольшую игру с тремя различными опциями, но я не уверен, как это записать в коде: если ответ не 1,2 или 3, продолжайте спрашивать вопрос до тех пор пока на входе 1,2 или 3.Продолжайте спрашивать, правильно ли введен вход

 Console.WriteLine("What do you want to do?"); 
     Console.WriteLine("1. Eat"); 
     Console.WriteLine("2. Drink"); 
     Console.WriteLine("3. Play"); 
     string answer = Console.ReadLine(); 

     if (answer == "1") 
     { 
      Console.WriteLine("you picked number 1"); 
     } 
     if (answer == "2") 
     { 
      Console.WriteLine("You picked number 2"); 
     } 
     if (answer == "3") 
     { 
      Console.WriteLine("You picked number 3"); 
     } 
     // if answer isn't 1,2 or 3, keep asking the question untill the input is correct. 
+2

вам нужно время цикла – pm100

+0

Удивительные вы не нашли каких-либо примеров этого. Возможно, поисковая система, которую вы используете, просто плохая. Попробуйте использовать [Google] (https://www.google.com/?gws_rd=ssl#q=C%23+Keep+asking+untill+input+is+correct) [Bing] (https://www.bing.com/search?q=C%23+Keep+asking+untill+input+is+correct), прежде чем задавать вопрос в будущем. Даже если вы не получите немедленных ответов, это может помочь показать, какие подходы вы пытались и почему/как это не сработало. –

ответ

2
var answer=""; 
    while(true) 
    { 
    Console.WriteLine("What do you want to do?"); 
    Console.WriteLine("1. Eat"); 
    Console.WriteLine("2. Drink"); 
    Console.WriteLine("3. Play"); 
    answer = Console.ReadLine(); 

    if (answer == "1") 
    { 
     Console.WriteLine("you picked number 1"); 
     break; 
    } 
    if (answer == "2") 
    { 
     Console.WriteLine("You picked number 2"); 
     break; 
    } 
    if (answer == "3") 
    { 
     Console.WriteLine("You picked number 3"); 
     break; 
    } 
    } 

или

var answer=""; 
    while(answer!="1" && answer!="2" && answer!="3") 
    { 
    Console.WriteLine("What do you want to do?"); 
    Console.WriteLine("1. Eat"); 
    Console.WriteLine("2. Drink"); 
    Console.WriteLine("3. Play"); 
    answer = Console.ReadLine(); 

    if (answer == "1") 
    { 
     Console.WriteLine("you picked number 1"); 
    } 
    if (answer == "2") 
    { 
     Console.WriteLine("You picked number 2"); 
    } 
    if (answer == "3") 
    { 
     Console.WriteLine("You picked number 3"); 
    } 
    } 

или

var answer=""; 
    var validanswers = new [] {"1","2","3"}; 
    while(!validanswers.Contains(answer)) 
    { 
    Console.WriteLine("What do you want to do?"); 
    Console.WriteLine("1. Eat"); 
    Console.WriteLine("2. Drink"); 
    Console.WriteLine("3. Play"); 
    answer = Console.ReadLine(); 

    if (answer == "1") 
    { 
     Console.WriteLine("you picked number 1"); 
    } 
    if (answer == "2") 
    { 
     Console.WriteLine("You picked number 2"); 
    } 
    if (answer == "3") 
    { 
     Console.WriteLine("You picked number 3"); 
    } 
    } 
+1

Я предполагаю, что он заменит это, чтобы называть разные функции, и это просто заполнители. –

2

Что-то вроде:

string answer = String.Empty; 
do 
{ 
    Console.WriteLine("What do you want to do?"); 
    Console.WriteLine("1. Eat"); 
    Console.WriteLine("2. Drink"); 
    Console.WriteLine("3. Play"); 
    answer = Console.ReadLine(); 
} while (answer != "1" && answer != "2" && answer != "3"); 

//handle answer here 
Смежные вопросы