gpt4 book ai didi

c++ - 跳出 if 语句

转载 作者:行者123 更新时间:2023-11-28 07:37:28 41 4
gpt4 key购买 nike

我正在编写一个程序,其中我使用 if 语句来检查某些条件;如果为真,我会增加一个计数器。问题是,一旦语句为真,变量要么无限递增,要么随机递增。

如果条件满足但我一直在尝试使用一些子句来打破这个语句

我的代码:

if(res_vect_angle >=60 && res_vect_angle <=100 && left_mag_b >100)
{

//line(drawing, *iter_s, *(iter_s -1), Scalar( 255, 255, 255 ), 2,8 );
left_hook_count++;
cout<<"Left Hook:..........................!!! "<<left_hook_count<<endl;

if(left_hook_count++ == true)
{
break;
}
}

与问题相关的整个代码块:

float M1, M2;
float A1, A2;
double left_mag_a, left_mag_b;
double res_vect_angle;

int i = 0;

for(vector<Point>::iterator iter_lh = Leftarm.begin(); iter_lh != Leftarm.end(); ++iter_lh)
{
if(iter_lh->y <=240 && iter_lh->y >=60 && iter_lh->x >=340 && iter_lh->x <=680)
{
left_detect.push_back(*iter_lh);

if(i % 4 == 0)
{
if(left_detect.size()>4)
{
for(vector<Point>::iterator iter_s = left_detect.begin()+3; iter_s != left_detect.end(); ++iter_s, i++)
{
//Resultant Magnetude
M1 = pow((double) iter_s->x + (iter_s -2)->x,2);
M2 = pow((double) iter_s->y + (iter_s -2)->y,2);

left_mag_a = (M1 + M2);

left_mag_b = sqrt(left_mag_a);

//Resultant Angle
A1 = abs(iter_s->x - (iter_s -2)->x);
A2 = abs(iter_s->y - (iter_s -2)->y);

res_vect_angle = abs(atan2(A1,A2) * 180 /PI);
//cout<<"LEFT HOOK ANGLE IS: "<<res_vect_angle<<endl;




if(res_vect_angle >=60 && res_vect_angle <=100 && left_mag_b >100)
{

//line(drawing, *iter_s, *(iter_s -1), Scalar( 255, 255, 255 ), 2,8 );
left_hook_count++;
cout<<"Left Hook:..........................!!! "<<left_hook_count<<endl;

if(left_hook_count++ == true)
{
break;
}
}




}

}
}
}

}

希望这对各位ps有所帮助。 left_hook_count++; 是在我的 main() 之上声明的一个 int 变量。

最佳答案

最好的解决方案可能是反转测试,并使所有其余的外部 if 成为条件:

if (whatever) {
// do some stuff
if (left_hook_count != true) { // or whatever the test should really be
// do some more stuff
}
}

您可以使用 goto 和在外部 if 之后的标签来获得您想要的程序流,但是 you don't want to .

另一方面,这听起来像是在循环中,如果计数器已递增,您根本不想进入 if block ?在那种情况下你想要:

if (left_hook_count == 0 && whatever) {
// do some stuff
}

关于c++ - 跳出 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486239/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com