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

标签 c++ arrays if-statement for-loop

因此,我目前从事 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/

相关文章:

javascript - IF 语句的多个 OR 条件

c++ - 将 VARIANT 从 COM 编码回 C++ 客户端

javascript - 如何使用 lodash 返回匹配模式的属性数组

arrays - 在 Bash 中将文件读入关联数组

r - 识别字符串中的第一个匹配位置

无法理解 C 中的字数统计

c++ - 如何将对象添加到 vector 并检查它是否有效

c++ - std::ofstream - setting seekp to wrong position

c++ - 如何在程序后台运行函数(特别是自动保存函数)? QT/C++

c++ - 为什么指针以半字节而不是数组中的字节递增?