A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王杨武 中级黑马   /  2012-10-4 23:00  /  2150 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王杨武 于 2012-10-5 12:48 编辑
  1. Random r = new Random();
  2. for (int i = 0; i <= num; )
  3.             {
  4.                
  5.                 int j = r.Next(1,300);
  6.                 if (Map[j]==0)
  7.                 {
  8.                     Map[j] = 1; i++;
  9.                 }
  10.                 else
  11.                 {
  12.                     continue;
  13.                 }
  14.            
  15.             }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
谁说标题要长吖,长了看不到...
回复 使用道具 举报
你在画什么地图,把思路说一下,是个什么情况?
这种情况for没有第三个条件表达式的话,你可以换while试一下。
不然很麻烦。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 秦敖 于 2012-10-5 15:18 编辑

猜想楼主是要实现随机抽取Map数组中的num+1个0把它替换成1,实现一种随机效果。
Random r = new Random();//随机种子
for (int i = 0; i <= num; )
            {
               
                int j = r.Next(1,300);//随机数,j为Map数组下标的话,范围应该从0到Map.Length-1吧,不知道楼主什么情况。
                if (Map[j]==0)
                {
                    Map[j] = 1; i++; //如果随机访问到的Map数组中的数是0的话,就将其替换成1,计数变量i+1,如果i>num将退出循环。i从0开始所以抽取num+1个
                }
                else
                {
                    continue; //如果抽取的数不是0,则进入下一次循环,感觉这个else是多余的,可以去掉。
                }
           
            }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马