如何在switch语句中选择随机大小写

时间:2011-08-01 20:46:49

标签: objective-c

我想输出几个问题,但是以随机顺序排列。如何在不重复的情况下随机提出所有问题?

for(int i=0; i<4; i++)
{
    int question=rand()%4;
    switch(question)
    {
        case 0:
            NSLog(@"What is your name");
            break;
        case 1:
            NSLog(@"Who are you");
            break;
        case 2:
            NSLog(@"What is your name");
            break;
        case 3:
            NSLog(@"How do you do");
            break;
        case 4:
            NSLog(@"Are you?");
            break;
    }
}

3 个答案:

答案 0 :(得分:5)

将问题保存在一个数组中。在提问开始时随机播放阵列。现在每次迭代从列表中提取一个问题,询问,得到答案,然后继续问题。

答案 1 :(得分:4)

rand(3)非常有名,因为实现较差的低位循环周期很短。尝试使用不同的位,或使用random(3)代替。实际上,OS X上的rand(3) man page表示:

  

这些界面已被random(3)淘汰。

此外 - % 4永远不会超过3,因此您的case 4将永远不会在此计划中执行。

答案 2 :(得分:1)

建议使用arc4random()来获得更好的算法,而不需要播种。否则,请致电srand以致电rand