gpt4 book ai didi

c++ - for 循环在 if 条件下

转载 作者:行者123 更新时间:2023-11-30 02:46:21 24 4
gpt4 key购买 nike

因此,我目前从事 OOP 流程图项目。

这里的要点是,我想确保程序不会在彼此之上绘制 2 个形状“以及窗口边界”,所以我应该给出一个 IF 条件,以便程序在其中绘制界面!

这是我的部分代码。

 case  ADD_START:
pO->PrintMessage("Action: add start statement, Click anywhere in the drawing Area");
Statement*statS;
pIn->GetPointClicked(P);
if ( (for (int i = 0; i < NumOfFigures; i++)
{ //Test
i == NumOfFigures;
} )
&& (P.x>30) && (P.x< UI.width-(30+UI.ELLIPSE_R1)) && (P.y>2*UI.TlBrWdth+3)
&& (P.y<UI.height - (UI.StBrWdth+UI.ELLIPSE_R2)) )
{
statS=new Start();
statS->setPoint(P);
statS->DrawStatement(pO,pIn);
pStat[NumOfFigures] = statS;
NumOfFigures++;
}
break;

在这里你可以看到pStat是指向抽象类Statement的指针数组,但是,我想添加在运行时绘制的形状的地址到该指针数组中,以便在 if 条件下我可以创建一个 for 循环来检查该数组中的每个形状及其边界,以检查 P (这是一个点)

P.x != pStat[NumOfFigure]->x;

但这里的问题是,它在 if 语句中为 for 循环提供了一个错误,表示

ERROR : Expected an expression "

我该怎么办?

最佳答案

您遵循的语法是比较循环中的值集的无效语法

您可以在单独的循环中测试 NumOfFigures 并维护一些 flag 变量,并使用该变量在 if 条件下进行比较

bool flag=true;
for (int i = 0; i < NumOfFigures; i++)
{
//Test
if(i != figuresArray[i]){ //here you'l need to use your array from where you want to compare values
flag=false;
break;// its not matching, so break loop to test for further values
}
}

//use flag variable in your if condition
if (flag==true && (P.x>30) && (P.x< UI.width-(30+UI.ELLIPSE_R1)) && (P.y>2*UI.TlBrWdth+3)
&& (P.y<UI.height - (UI.StBrWdth+UI.ELLIPSE_R2)) )
{
statS=new Start();
statS->setPoint(P);
statS->DrawStatement(pO,pIn);
pStat[NumOfFigures] = statS;
NumOfFigures++;
}

关于c++ - for 循环在 if 条件下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23650283/

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