-3

我正在使用 if else 查看条件,但它总是执行 else

int mytestcount=rowCount;
NSLog(@"My Test ROw Count IS %d",mytestcount);


if (mytestcount=0) {


    NSLog("No Data To Upload");

}


else {


    [Coffee getInitialDataToDisplay:[self getDBPath]];



}

我的如果是真的,那么它也会执行,否则我不知道为什么当 rowCount 为 0

4

4 回答 4

1

我猜你需要添加另一个 = 符号,以便它显示:

if (mytestcount==0)
于 2012-09-06T07:36:53.010 回答
1

= 是赋值运算符,== 是比较运算符。所以你的代码片段:

  • 将 0 分配给 mytestcount
  • 在 if 条件中使用 mytestcount,并且由于 mytestcount 等于 0 并且基于 C 的语言将 0 视为 false,因此您的 if 条件始终评估为 false,并且您的 else 分支始终执行
于 2012-09-06T07:41:34.197 回答
0
int mytestcount=rowCount;
 NSLog(@"My Test ROw Count IS %d",mytestcount);


if (mytestcount == 0) {


NSLog("No Data To Upload");

}


 else {


[Coffee getInitialDataToDisplay:[self getDBPath]];



}

看看这个...

于 2012-09-06T07:41:13.703 回答
0

您的语句(mytestcount = 0)实际上是分配0mytestcount,然后使用 的值mytestcount作为布尔表达式,这将始终为假,因为它被分配了 的值0

这是一个非常常见的错字,以至于大多数编译器可以检测到这种情况并在识别出这种模式时打印一条警告消息,因为您几乎总是不打算这样做。

您应该考虑使用 运行 gcc -Wall -Werror,如果编译器看到这些和其他类似错误的常见模式,这将导致编译器抛出错误。

于 2012-09-06T07:42:54.143 回答