繁体   English   中英

For 循环 - 当条件评估为假时继续

[英]For loop - continue when condition evaluates to false

我使用 CLion 做功课。 这是我的代码和我遇到的奇怪错误,但我不知道为什么。 我希望有人能告诉我为什么以及如何解决它。

void findDownCorner(vector<vector<Point> >& squares, Point2f corners[]){
    Point2f top_left=squares[0][0];
    Point2f top_right=squares[0][0];
    Point2f down_left=squares[0][0];
    Point2f down_right=squares[0][0];
    for(int i=0;i<squares.size();i++){
        for(int k=0;k<squares[i].size();i++){
            if(squares[i][k].x < top_left.x){
                top_left=squares[i][k];
            }
            if(squares[i][k].y < top_right.y){
                top_right=squares[i][k];
            }
            if(squares[i][k].y > down_left.y){
                down_left=squares[i][k];
            }
            if(squares[i][k].x > down_right.x){
                down_right=squares[i][k];
            }
        }
    }
    corners[0]=top_left;
    corners[1]=top_right;
    corners[2]=down_left;
    corners[3]=down_right;
}

如您所见,正方形的大小为 8,但现在i等于 8,并且循环并未停止。

更正您的 for 循环,如下所示。 最好使用括号来指示编译器应该首先执行哪个部分以避免副作用。

 for(int i=0;i<(squares.size());i++){
    for(int k=0;k<(squares[i].size());k++){

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM