【问题标题】:Selection a bool through randomizer通过随机化器选择一个布尔值
【发布时间】:2015-02-17 08:06:09
【问题描述】:

我总共有 6 个布尔值,唯一将它们分开的是一个数字。它们被命名为 checker0 到 5。

所以 checker0、checker1、checker2、checker3、checker4 和 checker5。

所有这些都允许或拒绝访问应用程序的某些部分,无论 bool 是真还是假。

然后我有一个随机发生器使用:

randomQuestionNumber = arc4random_uniform(5);

假设我们得到数字 3,checker3 = true;

但我现在的问题是,是否可以将其设置为 true 而无需通过 if 语句。

我的想法是实现使用 %d 打印 int 来表示 NSLog 的方式。

NSLog(@"The number is: %d", randomQuestionNumber);

比如:

checker%d, randomQuestionNumber = true.

这样的事情可能吗?所以我不必这样做:

if (randomQuestionNumber == 0) {
    checker0 = true;
}

else if (randomQuestionNumber == 1)
{
    checker1 = true;
}

非常感谢! :)

【问题讨论】:

    标签: objective-c random boolean


    【解决方案1】:

    每当您发现自己在命名三个或更多变量checkerN 的情况下,您很可能会错过代码中应该声明数组的地方。当您需要根据整数索引选择N 之一时,这一点尤其明显。

    最好的解决方案是将声明更改为checker[6],并使用索引而不是更改名称。如果由于某种原因无法做到这一点,您仍然可以创建一个指针数组,并使用它来修改您的值,如下所示:

    BOOL *ptrChecker[] = {&checker0, &checker1, &checker2, ...};
    ...
    *ptrChecker[randomQuestionNumber] = true;
    

    【讨论】:

    • 干杯!非常感谢!真的很感激! :D
    猜你喜欢
    • 1970-01-01
    • 2021-08-19
    • 2012-01-15
    • 2017-07-31
    • 1970-01-01
    • 2011-01-28
    • 2017-09-05
    • 1970-01-01
    相关资源
    最近更新 更多