黑马程序员技术交流社区
标题:
随机数生成 ArrayList使用 偶数判定
[打印本页]
作者:
爱吃桃子的猫
时间:
2014-4-26 09:06
标题:
随机数生成 ArrayList使用 偶数判定
本帖最后由 爱吃桃子的猫 于 2014-5-5 14:57 编辑
基础测试题:随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,并且都是偶数。
喵是小菜一枚,刚开始这个问题是利用for循环解决的,然后在网上看到了另一种用while循环解决类似问题的方法,比较了一下两种方法各有优劣,喵会继续努力,加油加油!!!
方法一:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace test9
{
class Program
{
static void Main(string[] args)
{
//随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,并且都是偶数。
Random r = new Random();//生成随机数
ArrayList arryList = new ArrayList();
for (int i = 1; i <= 10; i++)
{
//生成1-100之间的随机数
int number = r.Next(1, 101);
//这是一个数,生成十个不同的随机数
if (!arryList.Contains(number) && number % 2 == 0)//看是否包含相同的偶数
{
arryList.Add(number);//如果不相同且是偶数则添加随机数
}
else
{
i--;//当产生的随机数跟集合里面的数不包含时,我们要把次数减一次
}
}
for (int j = 0; j < arryList.Count; j++)//循环遍历
{
Console.WriteLine(arryList[j]);//向控制台输出随机数
}
Console.ReadKey();//当程序运行到这里,会停止到这里,等待用户按一个键再继续执行。
}
}
}
复制代码
方法二:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace test9
{
class Program
{
static void Main(string[] args)
{
//随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,并且都是偶数。
Random r = new Random();//生成随机数
ArrayList arryList = new ArrayList();
while (true)
{
if (arryList.Count == 10)
break;
int num = r.Next(1, 101);
if (!arryList.Contains(num) && num % 2 == 0)
{
arryList.Add(num);
}
}
foreach (var v in arryList)//foreach遍历
Console.WriteLine(v);
Console.ReadKey();
}
}
}
复制代码
作者:
许庭洲
时间:
2014-5-25 20:10
值得学习ing!
作者:
赵贺景
时间:
2014-5-26 18:47
for循环哪里,很有趣啊,是偶数且不相同就放进去,不是就是再次增加循环次数 直到挑出十个 终止循环
作者:
黑马.net
时间:
2014-5-26 21:35
不错,猫猫。
作者:
continue
时间:
2014-5-26 22:42
我觉得这种情况肯定while的效率要高点,至少从代码量上来说,少一些
作者:
continue
时间:
2014-5-26 22:45
我觉得可以把for中第三个条件i+给留个空【最好还是不要这样做】,然后把if下面的else给干掉,把i++放到if里面去,
作者:
yllogininbh
时间:
2014-6-1 14:41
顶1下
作者:
唐枫
时间:
2015-5-4 23:08
好给力!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2