如果只用循环能实现吗?
public class LouKong
{
public static void main (String []args)
{
 int lay=2;
for (int i=1;i<=lay;i++)
 {
 for (int k=1;k<=lay-i;k++)
 {
  System.out.printf(" ");
 }
 System.out.printf("*");
  System.out.println();
}
System.out.printf("*");
//这里咋样才不会换行,有那个控制字符能做到
?如果方法、思路不对,请各位指教!
  for (int p=1;p<lay-p;p++)
 {
   System.out.printf(" ");
   System.out.printf("*");
  }
 
 
  
 }

解决方案 »

  1.   

    public class LouKong {
    public static void main(String[] args) {
    int i, j, k;
    // i 的值,-3,-2,-1,0,1,2,3
    for (i = -3, j = 1; i <= 3; j++) {
    // 对i取绝对值,并传至给k
    if (i < 0)
    k = i * (-1);
    else
    k = i;
    // 如果满足条件,输出*,且跳出本次循环。
    if (j <= k || (j > 7 - k && j != 8)) {
    System.out.print(" ");
    continue;
    }
    // 如果满足条件输出a
    if (j > k && j <= 7 - k) {
    if ((j == k+1) || (j == 7-k)) {
    System.out.print("*");
    } else {
    System.out.print(" ");
    }
    }
    // 如果j=8则i自加1,并将0重新赋值为0!
    // (只有j在[1,7]范围内才输出)
    if (j == 8) {
    i++;
    j = 0;
    System.out.println();
    }
    }
    }
    }
      

  2.   

    System.out.printf("*");
    System.out.println("*"); 这样才换行
      

  3.   

    System.out.println(" *");
    System.out.println("* *");
    System.out.println(" *");