2016-02-14 30 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

相关问题