读书人

Java 镂空菱形的输出解决思路

发布时间: 2012-03-13 11:21:11 作者: rapoo

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("*");
}



}

[解决办法]

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();            }        }    }} 

读书人网 >J2SE开发

热点推荐