2014-01-05 82 views
1

我已經開發了一個新發現的編程興趣,但是我遇到了一些問題。我試圖做一個簡單的程序,用戶輸入10個數字,如果數字是0,它將停止,然後將這些數字添加到列表中,然後在最後打印列表。但是,我的程序在停止之前只需要輸入4個數字,輸入0時不會停止,並且在開始時每輸入一個數字消息打印3次循環。添加到列表和循環

任何幫助,將不勝感激

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) { 
      // I want to make a list 
      // keep asking the user for values 
      // which will then add those values onto the list 
      // then print the list 
      // create a list 
      List<int> list = new List<int>(); 
      int count = 0; 

      while (count < 10) { 
       Console.WriteLine("Enter a value to add to the list"); 
       int number = Console.Read(); 
       list.Add(number); 

       if (number == 0) { 
        break; 
       } 

       count++; 
      } 

      Console.WriteLine("The final list looks like this"); 

      foreach (int number in list) { 
       Console.WriteLine(number); 
       Console.ReadLine(); 
      } 
     } 
    } 
} 
+0

嗨,我剛剛編輯你的代碼來匹配縮進和括號。我建議你做一個經驗法則,因爲這會讓你更容易找到問題。 – Broxzier

+0

建議:您可以使用'for(int count = 0; count <10; count ++)來簡化您的生活,而不是自己處理'while'並處理'count'' – gturri

+0

讓自己熟悉調試器。調試比盯着代碼和推理要容易得多。 – usr

回答

3

問題是與Console.Read() - 它讀取字節,而不是應該在你的情況下,被轉換成INT字符串。

你在找什麼是Console.ReadLine(),用int.Parse()包圍。這樣的事情:

int number = int.Parse(Console.ReadLine()); 
+0

雖然這可能會導致例外,如果用戶沒有輸入有效的號碼。你應該首先通過'int.TryParse()'確定它是一個數字。 –

+0

謝謝你們,我很感謝你們的幫助! – atriqqq