2016-02-14 31 views
2

我試圖使隨機數字生成器,並希望它包含最大值的數組數組,我做了什麼是使用math.abs,我不知道我是否實現了我想要的......所以這裏是我的代碼:如何讓我的號碼生成器包含最大值? c#

using System; 

namespace _7 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Hello this is random number generator!"); 
      Console.WriteLine("Enter min number:"); 
      int pirmas = Convert.ToInt32(Console.ReadLine()); 
      Console.WriteLine("enter max number:"); 
      int antras = Convert.ToInt32(Console.ReadLine()); 
      antras = Math.Abs(antras + 1); 
      Random generator = new Random(); 
      Console.WriteLine("Generated number is:"); 
      int end = generator.Next(pirmas, antras); 
      Console.WriteLine(end); 
      Console.ReadKey();  
     } 
    } 
} 
+0

如果使用Math.abs你正試圖阻止進入的antras值小於pirmas,這將產生一個ArgumentOutOfRange異常的用戶,然後使用Math.abs是不是做的方式正如weirdev正確指出的那樣。使用try..catch或循環輸入,直到用戶輸入正確的值。 –

回答

2

Math.Abs()調用是不必要的,使得預期負最大數字的代碼無法正常工作。否則,你在做什麼應該完全按照預期工作。只需將antras加1即可。

antras += 1; 

編輯: 作爲Haukinger建議,它很可能是最好不要修改最大值(antras),而是隻修改調用Random.Next()

int end = generator.Next(pirmas, antras + 1); 
+1

我寧願'int end = generator.Next(pirmas,antras + 1);'因爲它在下一次調用的上下文中保留+1。 – Haukinger

+0

你說得對,這是更多的可讀性。我會更新我的答案。 – weirdev

相關問題