将此for循环转换为while循环



尝试将for循环的此代码转换为while循环:

int endData = myScanner.nextInt();   
int row     =   0;
int cell    =   0;
int rowcell =   0;

    System.out.println("FOR LOOP: ");
    for (row = 1; row <= endData; row++) {
        if (row%2 == 0) {
            for (cell = 0; cell < row; cell++) {
                for (rowcell = 0; rowcell <= cell; rowcell++) {
                    System.out.print(row);
                }
                    System.out.println("");
            }
        }
         else {
            for (cell = row; cell > 0; cell--) {
                for (rowcell = cell; rowcell > 0; rowcell--) {
                    System.out.print(row);  
                }
                    System.out.println("");
            }
        }
    }

到目前为止,我已经尝试过这个代码,但结果完全错误:

    row2 = 1;
    while (row2 <= endData){
        if(row2%2 == 0){
            cell2=0;
            rowcell2 = 0;
            while(cell2<row2){
                cell2++;
                while(rowcell2 <= cell2){
                    rowcell2++;
                    System.out.print(row2);
                } System.out.println("");
        }
    }else {
        cell2=row2;
        rowcell2 = cell2;
        while(cell2 >0){
            cell2--;
        }while (rowcell2>0){
            rowcell2--;
            System.out.print(row2);
        }System.out.println("");
    } row2++;
    }

例如,当用户输入值3时,For循环返回正确答案:
1
2
22
333
33
3

但是while循环输出:
1
22
2
333

关于如何修复while循环,有什么想法吗?

我看到的一个错误是初始化

rowcell2 = 0;

它应该在下

while(cell2<row2){

单元格在for循环结束时递增,在while循环开始时递增for(cell2)。其他问题也可能存在。

for循环在循环结束时执行最后一个部分(单元格++等)。

转换它所要做的就是在while循环之前声明索引,并将增量器添加到while循环的末尾。

int endData = myScanner.nextInt();   
int row     =   0;
int cell    =   0;
int rowcell =   0;

System.out.println("FOR LOOP: ");
row = 1;
while(row <= endData) {
    if (row%2 == 0) {
        cell = 0;
        while (cell < row) {
            rowcell = 0;
            while (rowcell <= cell) {
                System.out.print(row);
                rowcell++;
            }
                System.out.println("");
             cell++;
        }
        row++;
    }
     else {
        cell = row;
        while (cell > 0;) {
            for (rowcell = cell; rowcell > 0; rowcell--) {
                System.out.print(row);  
                cell--;
            }
                System.out.println("");
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新