我正在尝试使用嵌套循环打印下面的图片(我应该使用for和while循环):
**
****
******
********
以5个空格开头,每行减2。从2颗星开始,每行增加2颗星。在4行结束。
我的代码在第一行工作,但在其余3行上不打印星号。有人可以看到错误内容吗?请不要给出答案,我只需要帮助您了解逻辑错误即可!
int m = 6;
int n = 0;
for(int l = 1; l < 5; l++){
while(m > 0){
System.out.print(" ");
m--;
}
while(n < (2*l)){
System.out.print("*");
n++;
}
System.out.println();
m = 5 - (2*l);
n = n + 2;
}
错误是您没有在n
每个循环中重置变量。在第一个循环已经大于的第一个循环之后,向其添加2,2 * l
因此不会打印更多的星星。
将其结构化为:
for (int l = 0; l < 4; l ++) {
for (int i = 0; i < 5 - 2l; i++)
System.out.print(" ");
for (int i = 0; i < 2 + 2l; i++)
System.out.print("*");
System.out.println();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句