打印星星的“三角形”时出现java循环错误
我正在尝试使用嵌套循环打印下面的图片(我应该使用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;
}
# 1 楼答案
使用嵌套循环外部循环沿行向下移动,内部循环沿列移动。每次通过内环时,都应检查是放置空白还是星号。这可以通过if语句来完成。使用for循环中的整数变量来确定何时放置空格或星号。根据您想要的形状,算法会有所不同
或者,在这里使用双索引数组可能会很有趣。更复杂,但如果需要使用while循环,可能需要查看一些内容。可以使用for循环将双索引字符数组填充为“”或“*”,然后简单地打印出数组的ghe内容,同时在打印和检查数组是否为空后将值设置为null
也许其中有些是有用的。快乐编码
# 2 楼答案
错误在于没有在每个循环中重置
n
变量。在第一个循环之后添加2,在该循环中,点已经大于2 * l
,因此不会打印更多的星星将其组织为: