for循环中的多个声明

时间:2016-12-02 22:31:46

标签: c++

我的程序中定义了以下内容

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 ++中有效

1 个答案:

答案 0 :(得分:3)

在外圈dir=~ $( echo "ls -l $dir" > test.sh ) k开始并向上移动。因此它永远不会获得1的值。内循环需要0(与row == 0一起使用)。因此内部循环的条件永远不会被满足,因此内部循环体永远不会被执行。

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

col <= sizestr2

作为替代方案,您可以测试int row; int col; for(int k = 1; k <= sizestr1; k++){ for(row = k, col = 1; row => 0 && col <= sizestr2; row-- , col++){ //logic here } } 变量中的负值 in 循环,分别打破循环:

row