Java 镂空菱形的输出解决思路
Java 镂空菱形的输出
如果只用循环能实现吗?
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("*");
}
}
------解决方案--------------------
如果只用循环能实现吗?
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("*");
}
}
------解决方案--------------------
- Java code
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(); } } } }