本帖最后由 陈晖 于 2013-4-28 21:41 编辑
你这个代码有重复的结果,有图有真相。
//实例化一个Random对象,用来产生1-100之间的随机数。
Random r = new Random();
//定义一个存放10数字长度的数组。
int[] arr = new int[10];
//声明一个临时变量。
int a;
for (int i = 0; i < arr.Length; i++)
{
do
{
//产生一个0-100之间的随机数,可以取到0,但取不到100,范围好像有问题?
a = r.Next(0, 100);
//这里是判断产生的数必须是偶数,这个搞不懂为什么要这个while循环?
//while (a % 2 != 0)
//{
// a = r.Next(0, 100);
//}
//这里判断产生的数必须是大于0的,其实在上面产生随机数范围时可以改成:
//a = r.Next(1, 101);就可以保证从1开始,也能够取到100。
//Next()方法是取的到下界值,但取不到上界值。
//那样可以将if判断去掉了。
//if (a > 0)
//{
//判断现在取到的值是否与已存在的值有重复?有重复就进行下一次循环。
//但是continue是不执行continue所在循环后面的代码,
//这里continue所在循环是for循环。就算重复的话,a 也会加到数组中去的。
//可以在里面做个处理。
for (int j = 0; j < i; j++)
{
//如果是重复的,就将a赋值为0。并跳出循环。
if (arr[j] == a)
{
a = 0;
break;
}
}
//}
//如果a的值为0,就继续下一次循环,不将a的值加到数组中去。
if (a != 0)
{
arr = a;
}
else
{
continue;
}
break;
} while (true);
}
//已知数据类型,就将var改为int即可,不便于阅读。
foreach (var item in arr)
{
Console.WriteLine(item);
}
以上纯属个人想法,请多多指教{:soso_e181:} |