如何正确比较从 NSArray 检索的字符串与文字字符串?到目前为止,我已经在一个方法中用三个空格“”填充了一个 NSArray,现在我试图用字符串“C10”替换 NSArray 中的 10 个随机索引,但我不想替换那里的内容除非它仍然是“”。
在这里,我创建了大小为 100 的数组,并用 3 个空格填充每个点。
-(void) initBoard{
_board = [board initWithCapacity: 100];
for(int i =0; i < 100; i++){
[_board addObject:@" "];
}
}
这是我在相等比较时遇到问题的方法。
-(void)makeChutes: (int) numOfChutes {
//Make argument number of Chutes randomly across the board.
for(int i = 0; i < numOfChutes || i>(-100);){
int random = arc4random_uniform(101);
if ([[_board objectAtIndex:random] isEqual:@" "]) {
NSString *fString = [NSString stringWithFormat:@"C%d", 10];
[_board replaceObjectAtIndex:random withObject:fString];
i++;//Only increments i if 3 blank spaces were at random index..
}
else{//Used to attempt to stop my accidental infinite loop.
i--;
NSLog(@"I, loop, ran %i times.", i);//Attempt failed:-(
}
}
}
我知道上面的代码是一团糟。为了停止循环,我每次不满足 for 条件时都将 i 递减,然后使用 || 在我的 for 循环中添加一个 OR 条件,以尝试在 100 个循环后停止它。出于某种原因 || 即使 i 在 -100 以南,条件也不会阻止它循环。
我的第一个问题是如何正确地将存储在索引“随机”的数组中的字符串与 3 个空格的文字字符串进行比较?我也尝试了该方法isEqualToString
,但效果相同。
其次也是不太重要的,因为我现在不需要它,我如何正确编写双条件 for 循环?我的 for 循环语法没有从 Xcode 收到任何错误或警告,它可以编译并运行,所以我真的不明白为什么它会忽略我的第二个条件并且即使在i
is时也会继续迭代< -100
。