日期:2014-05-18  浏览次数:20904 次

C#新手再次请教一个关于生成随机数的问题
我想生成2个不同的随机数字,都是0到9之间,我想的做法是先生成一个随机数字int a=ra.next(0,10),然后再生成另一个随机数字,比较2个数字如果一样,则重新生成第2个数字,直到不同为止,然后输出2个不同的数字,生成第2个数字和2个数字比较的过程放在一个方法中,我写的代码是这样:
class Program
  {
  static void Main(string[] args)
  {
  Random ra = new Random();
  int a = ra.Next(0, 10);
  Console.WriteLine(a);
  int b=ranum(a);
  Console.WriteLine(b);
  }
  public static int ranum(int a)
  {
  Random rb = new Random();
  int b = rb.Next(0, 10);
  if (b != a)
  {
  return b;
  }
  else
  {
  Random rc = new Random();
  int c = rc.Next(0, 10);
   
  }
  }
   
  }
问题是这样写,编译器会报告一个错误:"并非所有的代码路径都返回值"
请教一下如何修改代码才能实现最初的要求..



------解决方案--------------------
class Program 

static void Main(string[] args) 

Random ra = new Random(); 
int a = ra.Next(0, 10); 
Console.WriteLine(a); 
int b=ranum(a);
Console.WriteLine(b); 

public static int ranum(int a) 

Random rb = new Random(); 
int b = rb.Next(0, 10); 
while(b==a)
{
b = rb.Next(0, 10); 
}
return b;




手写的没有进行编译,看了一下应该没问题。
其实我也学不多久,希望以后一起切磋吧,呵呵,MSN: lyhenhanqing@hotmail.com