如果其他条件总是excuting否则不若
问题描述:
我使用,如果其他人看到的状态,但它始终执行其他如果其他条件总是excuting否则不若
int mytestcount=rowCount;
NSLog(@"My Test ROw Count IS %d",mytestcount);
if (mytestcount=0) {
NSLog("No Data To Upload");
}
else {
[Coffee getInitialDataToDisplay:[self getDBPath]];
}
我,如果是真的,那么也是它excutes别的我不知道为什么,当rowCount时为0
答
=是赋值运算符,==是比较运算符。 所以,你的代码片段:
- 将0至mytestcount
- 使用mytestcount在若条件,并自mytestcount等于0和基于C语言的语言把0作为假的,你如果条件计算结果始终为false,并且始终执行您的else分支
答
我猜你需要添加另一个等号(=),以便它读取:
if (mytestcount==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]];
}
检查出来...
答
您声明(mytestcount = 0)
实际上,分配0
到mytestcount
,然后使用mytestcount
为布尔表达式,这将永远是假的价值,因为它被赋予的值。
这是一个非常常见的错字,以至于大多数编译器可以检测到这种情况,并在识别出这种模式时会打印警告消息,因为您几乎总是不打算这样做。
您应该考虑使用gcc与-Wall -Werror
,如果它看到这些和其他类似错误的常见模式,将导致编译器发出错误。
您输入了'mytestcount = 0'而不是'mytestcount == 0' – Eregrith
在发布您的问题之前,请仔细思考和研究,这是相当普遍的一个... :) – IronManGill
这应该给您一个警告, “使用赋值的结果作为没有括号的条件”,如果单击该警告将允许您添加括号或添加==。使用警告有利于您研究您的问题,因为这是基本的编程技巧。 – Popeye