尝试将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
关于如何在循环中修复此问题的任何想法?
答案 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("");
}
}
}