2015-09-26 3 views
0

Я создал программу в C# (Console Application), в которой пользователь вводит ответ на «2 + 2 =?», Если его право появляется сообщение «Хорошо done ", если нет, то" Попробуйте еще раз ". То, что я пытаюсь сделать, - заставить программу рассказать пользователю, сколько догадок/попыток они сделали, прежде чем получить правильный ответ.Do ... В то время как реализация счетчика циклов не работает

Это то, что я сделал до сих пор

class Program 
{ 
    public static int correct_answer, counter, user_answer, counterUpdated; 

    static void Main(string[] args) 
    { 
     correct_answer = 4; 

     do 
     { 
      counter = 1; 
      counterUpdated = counter++; 

      Console.WriteLine("2+2= ?"); 
      user_answer = Convert.ToInt32(Console.ReadLine()); 

      if (user_answer != correct_answer) 
      { 
       Console.Clear(); 
       Console.WriteLine("Wrong, try againg" + " this is your " + counterUpdated + " try."); 
      } 
     } while (user_answer != correct_answer); // The code will keep looping until the user prompts the correct answer 

     Console.Clear(); 
     Console.WriteLine("Well Done! you did it in this amount of guesses " + counterUpdated); 
     Console.ReadLine(); 
    } 
} 

Если кто-то может сказать мне, как сделать счетчик работу вещь, это было бы здорово.

+0

не объявлять переменные как статические поля. его не очень хорошая практика –

ответ

1

Изменен немного, и это должно работать :)

class Program 
{ 
    public static int correct_answer, counter, user_answer; 

    static void Main(string[] args) 
    { 
     correct_answer = 4; 
     counter = 0; 
     do 
     { 

      counter++; 

      Console.WriteLine("2+2= ?"); 
      user_answer = Convert.ToInt32(Console.ReadLine()); 

      if (user_answer != correct_answer) 
      { 

       Console.Clear(); 
       Console.WriteLine("Wrong, try againg" + " this is your " + counter+ " try."); 

      } 



     } while (user_answer != correct_answer); // The code will keep looping until the user prompts the correct answer 
     Console.Clear(); 
     Console.WriteLine("Well Done! you did it in this amount of guesses " + counter); 
     Console.ReadLine(); 



    } 
} 

Что я сделал я удалил counterUpdated переменный и был переменная counter делать всю счетную работу :)

Надежды это помогло :)

+1

заменить 'counterUpdated' на' counter' ... вы удалили 'counterUpdated', но вы забыли заменить его' counter'. посмотрите на свой код в Console.WriteLine –

+0

@ M.kazemAkhgary да :) исправлено это :) – faztp12

2

Вы всегда устанавливаете counter в 1 в начале цикла, а затем сразу counterUpdated = counter++; (что немного странно в любом случае ...). Просто сделайте это с помощью одного счетчика, который вы инициализируете вне цикла и увеличиваете внутри цикла.

int guessNumber = 0; 
do { 
    guessNumber++; 
    // ... 
Смежные вопросы