请高手帮我看看这个菜鸟级的JAVA程序问题出在哪了,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/02 00:05:18
public class Wa {

public static void main(String[] args) {
char ch = '*';

int n = (int)(Math.random()*16+5);
if(n>=5&&n<=20)
{ n++;}
for(int i = 1;i<=n;i++)
for(int j=1;j<=i;j++)
if (j==i){
System.out.print("*"+ch);
System.out.println();
我是菜鸟,笨的出奇 请帮帮我 谢谢高手啦~~~~~ }
括号的问题忽略,主要是循环部分.我想输出随即的由"*"组成的正方形.万分感谢啊~~~

public class Wa {

public static void main(String[] args) {
char ch = '*';

int n = (int)(Math.random()*16+5);
if(n>=5&&n<=20)
{
n++;
System.out.println("n="+n);
}
for(int i = 1;i<=n;i++){

for(int j=1;j<=n;j++)
{
System.out.print("*"+ch);
if(j==n){
System.out.println();
}
}

}

}
}
注意程序逻辑!

for(int j=1;j<=i;j++)
第二个for循环的范围出错
j的取值范围不应该是<=i;
因为你要输出的是正方形,
而不是三角形