通过随机发生器选择一个布尔值
Selection a bool through randomizer
我总共有 6 个布尔值,唯一分隔它们的是数字。他们被命名为 checker0 though 5.
所以 checker0、checker1、checker2、checker3、checker4 和 checker5。
无论布尔值是真还是假,所有这些都会授予或拒绝访问应用程序的某些部分。
然后我有一个随机发生器使用:
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;
}
非常感谢! :)
每当您发现自己处于命名三个或更多变量的情况时 checkerN
,您很可能知道您错过了代码中应该声明数组的地方。当您需要根据整数索引选择 N
之一时,这一点变得尤为明显。
最好的解决方案是将声明更改为 checker[6]
,并使用索引而不是更改名称。如果由于某种原因这不可能,您仍然可以创建一个指针数组,并使用它来修改您的值,如下所示:
BOOL *ptrChecker[] = {&checker0, &checker1, &checker2, ...};
...
*ptrChecker[randomQuestionNumber] = true;
我总共有 6 个布尔值,唯一分隔它们的是数字。他们被命名为 checker0 though 5.
所以 checker0、checker1、checker2、checker3、checker4 和 checker5。
无论布尔值是真还是假,所有这些都会授予或拒绝访问应用程序的某些部分。
然后我有一个随机发生器使用:
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;
}
非常感谢! :)
每当您发现自己处于命名三个或更多变量的情况时 checkerN
,您很可能知道您错过了代码中应该声明数组的地方。当您需要根据整数索引选择 N
之一时,这一点变得尤为明显。
最好的解决方案是将声明更改为 checker[6]
,并使用索引而不是更改名称。如果由于某种原因这不可能,您仍然可以创建一个指针数组,并使用它来修改您的值,如下所示:
BOOL *ptrChecker[] = {&checker0, &checker1, &checker2, ...};
...
*ptrChecker[randomQuestionNumber] = true;