我模拟了程序逻辑提取出来可以单独查看这个奇怪现象的代码。
代码是这样的
正常情况下,if判断句是可以在在判断0>-1成立,打印right
代码是这样的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
NSMutableArray
*array = [[
NSMutableArray
alloc]initWithObjects:@
"1"
,@
"2"
,@
"3"
,
nil
];
for
(
int
i = 0;i < 3; i++)
{
[array removeLastObject];
}
//int temp = [array count];
int
index = 0;
if
(index >= [array count] - 1 )
{
NSLog
(@
"right!!!"
);
}
else
{
NSLog
(@
"what????!!!!><"
);
}
[array release];
|
正常情况下,if判断句是可以在在判断0>-1成立,打印right
但是,这里却会跑到else条件下。
知道原因了
原来是无符号整数的原因。也就是说
对于无符号整数来说,你给它负数的值,会变成一个很大的数