多声明循环

Multiple declaration in for loop

本文关键字:循环 声明      更新时间:2023-10-16

我在程序中定义了以下定义

int row;
int col;
for(int k = 1; k <= sizestr1; k++){
  for(row = k, col = 1; (row == 0 && col <= sizestr2); row-- , col++){
        //logic here
    }
}

调试后,内部循环中的逻辑似乎并没有执行。上述内部循环的定义在C

中有效

在外循环k中从1开始,然后向上。因此,它永远不会获得0的值。内部循环需要row == 0(与col <= sizestr2结合使用)。因此,内部环的条件永远不会满足,因此内部环形主体永远不会执行。

条件表达式确定循环何时允许执行,因此您需要测试该变量是否为 non-nem 允许循环:

int row;
int col;
for(int k = 1; k <= sizestr1; k++){
    for(row = k, col = 1; row >= 0 && col <= sizestr2; row-- , col++){
        //logic here
    }
}

作为替代方案,您可以测试 row变量为负值 分别断开循环:

int row;
int col;
for(int k = 1; k <= sizestr1; k++){
    for(row = k, col = 1; col <= sizestr2; row-- , col++){
        if(row < 0)
            break;      // terminate the inner loop
        //logic here
    }
}