来自范围中间没有特定数字的范围的随机数

时间:2014-06-08 16:20:31

标签: objective-c random int

我正在生成0到11之间的数字,如下所示:

int n = arc4random() % 12;

但是,我想不要输出5或6。我怎么能这样做?

2 个答案:

答案 0 :(得分:6)

你可以这样做:

int n = arc4random_uniform(10);
if (n >= 5) n += 2;

答案 1 :(得分:2)

如果您有这样的约束,请在代码中明确说明:

int n;
do {
    n = arc4random() % 12;
} while (n == 5 || n == 6); //retry if encountered one of unallowable values