我想检查struct数组的所有值是否保持相同的值,以便在struct数组中隐藏“deleted”条目。
我的结构看起来像这样:
struct spawnedObject {
Hash objHash;
Object obj;
char* displayname;
int invisibility;
Vector3 position;
int deleted; // 1=deleted and hidden, 0=should be listed and available
};
我想检查结构中所有条目的deleted
是否为真。当它们都是真的时,让else
显示空文本。
我已经尝试循环所有deleted
值并在值设置为1
时增加int,如下所示:
void objectManagerMenu() {
objectVar = 0;
int inc = 0; //store deleted entries count
// loop through all entries. if entry deleted, increase.
for (int i = 0; i < objectCount; i++) {
if(spawnedObjects[i].deleted) inc++;
}
// check if there either are no entries, or if theyre hidden. if all stored entries are hidden, fallback to else. this is where it goes wrong.
// problem: does not seem to fallback to else.
if(objectCount != 0 || objectCount != inc) {
for (int i = 0; i < objectCount; i++) {
if(!spawnedObjects[i].deleted) { // remove hidden items from list
char buffer[150];
sprintf(buffer, "[ %i ] %s", i, spawnedObjects[i].displayname);
menu.option(buffer).call(objectItemVar, i).submenu(objectItemMenu);
}
}
} else {
menu.option("Empty");
}
}
似乎无法正常显示。
有人建议我如何以更聪明的方式做到这一点吗?
答案 0 :(得分:0)
问题是你的||在if语句中,如注释中所述。
objectCount != inc
最有可能返回true
if
返回false,因为菜单为空(在您尝试测试的当前场景中)
由此else
语句将始终为真(如果您的对象计数大于0),因此永远不会执行||
。
将&&
更改为||
如果至少有一个陈述给出了真假,为什么
window.onload=function(){
document.getElementById("myLink").click();
};
会返回true
&安培;&安培;只有当两个都为真且这是您想要的