Ios 当int已经在我的数组中时,如何返回并获取新的随机int?
我生成随机整数,将它们放在NSNumber中并保存在数组中。现在我如何说“当数字已经在我的数组中时,返回并获取一个新的数字?”Ios 当int已经在我的数组中时,如何返回并获取新的随机int?,ios,arrays,nsmutablearray,Ios,Arrays,Nsmutablearray,我生成随机整数,将它们放在NSNumber中并保存在数组中。现在我如何说“当数字已经在我的数组中时,返回并获取一个新的数字?” 感谢您的回答,并对我的英语不好表示歉意。这是do/while循环的一个很好的用法: if (idarray.count < 50) { NSInteger value; do { value = arc4random_uniform(50); } while ([idarray containsObject:@(value)
感谢您的回答,并对我的英语不好表示歉意。这是
do/while
循环的一个很好的用法:
if (idarray.count < 50) {
NSInteger value;
do {
value = arc4random_uniform(50);
} while ([idarray containsObject:@(value)]);
[idarray addObject:@(value)];
}
if(idarray.count<50){
NSInteger值;
做{
值=arc4random_均匀(50);
}而([idarray containsObject:@(value)]);
[idarray addObject:@(值)];
}
还要注意使用了
arc4random\u uniform
和现代装箱语法。谢谢!它有效:-)另一个问题。当所有数字都在我的数组中时,我能做什么?目前我的iPhone模拟器什么也没做。它挂起,当它找不到新的随机数时,它不在我的数组中。如果数组包含全部50个数字,您希望发生什么?我也有数字较少的数组:-)当我的do/while找不到新的数字时,我可以调用一个方法吗?如果您的数组“已满”,请不要调用代码来添加新值,因为数组中没有新值。
if (idarray.count < 50) {
NSInteger value;
do {
value = arc4random_uniform(50);
} while ([idarray containsObject:@(value)]);
[idarray addObject:@(value)];
}