无法检查Objective-C中变量的值

时间:2012-04-11 05:48:05

标签: objective-c boolean

我需要检查变量vi_theIndex的值。在给定时刻它的值为65。

我想检查vi_theIndex是大于还是等于零且小于32。 现在我这样做:

long long vi_theIndex = 65;
if ((vi_theIndex >= 0) && (vi_theIndex < 32) )
 {
   //Case true
 }
else
{
   //Case false
}

我意识到65的结果是错误的。第二种情况应该出现,但第一种情况变为现实。这是为什么?

我试过了:

long long vi_theIndex = 65;

bool limitFlag1, limitFlag2;

limitFlag1 = (vi_theIndex <= 0);
limitFlag2 = (vi_theIndex = 65);

limitFlag2变为true且limitFlag1变为未定义,调试器甚至不会在我的断点处停止。看起来C不理解'&lt;','&lt; ='或'&gt;'迹象。当我使用'&lt;'时也会发生这种情况。或'&gt;'像这里一样签名:

limitFlag1 = (vi_theIndex < 0);

limitFlag1未定义。

有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:2)

你不能在第一个例子中显示你的真实代码 - 如你所说,“case false”应该被执行。

您的第二个示例存在问题 - 您可能需要vi_theIndex = 65而不是vi_theIndex == 65。你拥有它的陈述总是如此。 limitFlag1将是0 - 我不确定你的意思是“未定义” - 你是不是也在这里展示你的真实代码?