我正在尝试制作具有循环的函数,该循环检查由布尔变量组成的数组的每个成员,并在找到第一个“真”值时退出。
这就是我现在所拥有的:
bool solids[50];
int a,i;
//"equality" is a function that checks the equality between "a" and a defined value
solids[0] = equality(a,&value_1);
solids[1] = equality(a,&value_1);
solids[2] = equality(a,&value_1);
solids[3] = equality(a,&value_1);
for (i = 0; solids[i] != true; i++)
{
[...]
}
但我不知道,我应该在循环中放什么?
我的尝试是
for (i = 0; i <= 50; i++)
{
if (solids[i] == true)
{
return true;
break;
} else {
return false;
}
}
,它应该true
在第一次找到 true 之后返回false
,如果数组没有具有true
值的成员则返回,但它似乎在代码中不起作用。
这是错的吗?如果是,问题是什么?
PS.:我可以true
用计数器计算 s 的数量,但这不是问题的最佳解决方案,因为我只查找 FIRSTtrue
值,因此,程序不必检查所有 50 个成员。Needley 数一数,这个解决方案应该意味着多少不必要的步骤。