首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

求高手帮忙看看这个递归函数的有关问题究竟在哪

2012-02-04 
求高手帮忙看看这个递归函数的问题究竟在哪有2数组neWRadmonArray [[NSMutableArray alloc] init]Radmo

求高手帮忙看看这个递归函数的问题究竟在哪
有2数组 
  neWRadmonArray = [[NSMutableArray alloc] init];

  RadmonArray = [[NSMutableArray alloc] init];
  [RadmonArray addObject:@"A"];
  [RadmonArray addObject:@"B"];
  [RadmonArray addObject:@"C"];
  [RadmonArray addObject:@"D"];
  [RadmonArray addObject:@"E"];


我现在随即从RadmonArray取出一条


-(NSString *) GenerateRandom{

  int randomValue = arc4random()%5;//Generate 0 - 4
  NSString *returnRandom = [RadmonArray objectAtIndex:randomValue];
  int i;
  int total;
  bool existFlag=false;

  if(returnRandom==@"A" && hasGenerateBlue==true){
  [self GenerateRandom];
  }


  for(i=0,total=[neWRadmonArray count];i<total;i++)
  {
  if (returnRandom == [neWRadmonArray objectAtIndex:i]){
  existFlag = true;
  break;
  }
  }
if(existFlag)//check if has generated.
  {
  [self GenerateRandom];
  }
  else
  {
  [neWRadmonArray addObject:returnRandom];//put generated shape into array
  }
  return returnRandom;



但是还是出重复的。。。帮忙看看,,,


[解决办法]
if(existFlag)//check if has generated.
{
[self GenerateRandom];
}
else
{
[neWRadmonArray addObject:returnRandom];//put generated shape into array
}
return returnRandom;感觉就像这里的原因,如果存在了,它会调用自身函数,是不是当执行完[self GenerateRandom];之后它还会继续执行后面,后面的return returnRandom,返回的并不是你调用的[self Gen...dom]中return的东西,而是返回的你在当前这次调用函数最初赋予的,所以应该返回不出你想要的其实是递归调用的[self GeneratRandom]方法中返回的值

热点排行