将此for循环转换为while循环?

时间:2015-03-17 21:35:23

标签: java for-loop while-loop converter user-input

尝试将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

关于如何在循环中修复此问题的任何想法?

3 个答案:

答案 0 :(得分:0)

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

rowcell2 = 0;

它应该在

之下
while(cell2<row2){

答案 1 :(得分:0)

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

for循环在循环结束时执行最后一节(cell ++等)。

答案 2 :(得分:-1)

转换它所需要做的就是在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("");
        }

    }

}