黑马程序员技术交流社区

标题: 怎样实现? 注释详细点最好 谢谢 [打印本页]

作者: 我的专属    时间: 2014-3-13 01:37
标题: 怎样实现? 注释详细点最好 谢谢
随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,并且都是偶数(添加10次,可能循环很多次。)
作者: haxyek    时间: 2014-3-13 02:32
加判断。
作者: 白夜行    时间: 2014-3-13 09:45
你可以先定义两个函数 IsEven() 和 IsRepeat() 分别判断 一个数是否为偶数,这个数在ArrayList中是否重复;
然后再主函数中设置一个循环,当达到10个数时退出;
循环体中 ,先生成一个随机数,判断它是否为偶数,如果是偶数再做下一步判断,看它在ArryList中是否已经重复,两道关卡都通过就Add()这个数;否则重新生成。具体代码如下:
  1. //判断是不是偶数
  2. public static bool IsEven(int number)
  3.         {
  4.             if (number % 2 == 0)
  5.             {
  6.                 return true;
  7.             }
  8.             else
  9.             {
  10.                 return false;
  11.             }
  12.         }
复制代码

  1. //判断是否重复
  2. public static bool IsRepeat(ArrayList array, int number)
  3.         {
  4.             if (array.IndexOf(number) != -1)
  5.             {
  6.                 return true;
  7.             }
  8.             else
  9.             {
  10.                 return false;
  11.             }
  12.         }
复制代码

  1. static void Main(string[] args)
  2.         {
  3.             ArrayList arrayList = new ArrayList();
  4.             Random ran = new Random();
  5.             int i = 0;
  6.             while(i < 10)  //因为要输入10个数,用i控制个数,达到十个跳出循环
  7.             {
  8.                 int number = ran.Next(1, 100); //产生一个随机数

  9.                 if (IsEven(number)) //如果随机数为偶数则继续执行,否则重新生成随机数再判断
  10.                 {
  11.                     if (IsRepeat(arrayList, number)) //如果重复则重新生成随机数,否则添加到ArrayList中
  12.                     {
  13.                         continue;  //返回while循环开始
  14.                     }
  15.                     else
  16.                     {
  17.                         arrayList.Add(number);
  18.                     }
  19.                 }
  20.                 else
  21.                 {
  22.                     continue;
  23.                 }

  24.                 i++;
  25.             }

  26.             foreach (int a in arrayList) //遍历并打印输出
  27.             {
  28.                 Console.WriteLine(a);
  29.             }

  30.             Console.ReadLine();
  31.         }
复制代码

作者: 夢醒了⊙﹏⊙b心    时间: 2014-3-13 11:39
1、使用new random.next循环产生1到10的树
2、在循环中判断这个数与上一个数是否为相同的数并且判断是否为偶数  是则输出 不是重新生成
3、将这些生成的数添加进集合
4、遍历整个集合




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2