For循环转换While循环

时间:2016-06-16 22:57:38

标签: java loops

我是java初学者,我正在进行for循环和while循环。我理解它们是如何工作的,但我无法弄清楚如何从for循环转换为while循环。

for(int row=rowIndex+1; row<this.getMaxRows(); row++){
   if(board[row][colIndex]==board[rowIndex][colIndex] && row!=rowIndex)
   {
       this.setBoardCell(row, colIndex, BoardCell.EMPTY);
       score++;
   }
   else{
       break;
   }
}

4 个答案:

答案 0 :(得分:6)

for循环只是一个带有变量声明的while循环和一个在最后执行的语句。

所以这个:

for(int row=rowIndex+1; row<this.getMaxRows(); row++){
   //body of the loop goes here
}

大致相当于:

int row = rowIndex +1;
while (row < this.getMaxRows()){

    //body of the loop goes here

    row++;
}

唯一真正的区别是现在可以在row - 循环之外访问while变量。 如果您不希望这样做,可以使用另一个块:

{
    int row = rowIndex +1;
    while (row < this.getMaxRows()){

        //body of the loop goes here

        row++;
    }
}
//can't access row here.

答案 1 :(得分:0)

for循环的第一部分是初始化,然后是检查,然后是增量。所以:

int row=rowIndex+1; //first part
while(row<this.getMaxRows())//second part {
        if(board[row][colIndex]==board[rowIndex][colIndex] && row!=rowIndex) {
            score++;
        else
            break;
        }
    row++;//third part
}

答案 2 :(得分:0)

您的问题不完整,但根据您提供的信息,这是您应该拥有的:

int row=rowIndex+1;
while((board[row][colIndex]==board[rowIndex][colIndex] && row!=rowIndex)){
    this.setBoardCell(row, colIndex, BoardCell.EMPTY);
    score++;
    row++;
}

答案 3 :(得分:0)

我认为这会起作用

while(row < this.getMaxRows()) {
    if (board[row][colIndex] == board[rowIndex][colIndex] && row != rowIndex) {
        this.setBoardCell(row, colIndex, BoardCell.EMPTY);
        score++;
        row++;
    }
    else {
        break;
    }
}