用java打印三角形能不能解释我这个代码啊

public class Nba{

public static void main(String args[]){
for(int s1=5;s1>0;s1--){
for(int j2=s1; j2>0; j2--){
System.out.print(" ");
}
for(int j1=0;j1<=5-s1;j1++){
System.out.print("* ");
}
System.out.println(" ");
}
System.out.println( );

public class Nba {
public static void main(String args[]){
for(int s1=5;s1>0;s1--)
{
for(int j2=s1; j2>0; j2--)
{
//第一行5个空格,依次递减 ,第五行时,只打印1个空格
System.out.print(" ");
}
for(int j1=0;j1<=5-s1;j1++)
{
//打印"* "第一行打印打印1个,依次递增(s1初始是5,后面会递减)
//最后一行该循环会循环5次,所以会打印5个"* "
System.out.print("* ");
}
//每行后面再多加个空格,并且换行。
System.out.println(" ");
}
//换行,此处有些多余。
System.out.println( );
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-26
你看public void draw(Quadrangle q)这个方法中有句输出:System.out.println(nextIndex);最后结果的0和1就是从这里输出的,
首先是对象q进行调用draw的: q.draw(new Square());
q.draw(new Parallelogramgle());
nextindex是0,当q.draw(new Square())执行中打印nextindex的值是0,执行完时由于nextindex++,所以nextindex=1了,然后再q.draw(new Parallelogramgle()),执行中时nextindex++是1,执行完后变成2了,
还不清楚,你就在修改一下这个方法:
public void draw(Quadrangle q) {
if (nextIndex < qtest.length) {
qtest[nextIndex] = q;
System.out.println(nextIndex);
nextIndex++;
}
System.out.println(nextIndex);
}
你可以看到输出结果是:
正方型
0
1
平行四边形
1
2
第2个回答  2011-09-25
首先,最后一个System.out.println( );后少一个“ } ”。。。。追问

我知道 ,但是第二行打印空格有什么规律啊

第3个回答  2011-09-25
画个相应矩形,再根据循环镂空就行了!
第4个回答  2016-01-05
答案