java基础打印图形
在控制台输出实心菱形和空心菱形,输出的结果:
/*
* *
* ***
* *****
* *******
* *****
* ***
* *
*/
/*
* *
* * *
* * *
* * *
* * *
* * *
* *
*/
实心菱形代码部分:
for(int i=1;i<=4;i++) {//先控制打出倒三角
for(int j= 1;j<=4-i;j++) {//内层控制每层的个数
System.out.print(" ");
/*
* 111
* 11
* 1
*/
}
for(int k= 1;k<=2*i-1;k++) {
/*
* 此处正常输出的图形为:
* *
* ***
* *****
* *******
*
*/
System.out.print("*");//此处正常打印* 1---3----5----7
}
System.out.println();
/*
* 与之前的输出图形进行拼接,空格用1表示
* 111*
* 11***
* 1*****
* *******
* 则完成上半部分的菱形
*/
}
//下半部分,原理和上半部分原理相同。
for(int l=1;l<=2;l++) {
for(int o =1;o<=l;o++) {
System.out.print(" ");
}
for(int p=1;p<=2*(2-l+1)-1;p++) {
System.out.print("*");
}
System.out.println();
}
空心菱形则是在实心菱形的基础之上完成的
将输出号的同时做一次判断,看其是否满足每行的最后一个值,若满足输出,不满足输出空格:
代码部分:
for(int i=1;i<=4;i++) {//先控制打出倒三角
for(int j= 1;j<=4-i;j++) {//内层控制每层的个数
System.out.print(" ");
/*
* 111
* 11
* 1
*/
}
for(int k= 1;k<=2*i-1;k++) {
if(k==1 || k==2*i-1) {//在此处做了判断,满足输出直角
//三角形的两个边,也就是第一列是星号,还有最后一个是星号
System.out.print("*");//此处正常打印* 1---3----5
}else {
System.out.print(" ");
}
}
System.out.println();
}//上半部分
for(int l=1;l<=3;l++) {
for(int o =1;o<=l;o++) {
System.out.print(" ");
}
for(int p=1;p<=2*(3-l+1)-1;p++) {
if(p==1 || p==2*(3-l+1)-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
最后用数组写了一个图像通用公式:
各位在使用的时候,将数组的数字改为自己定义的图案即可使用:
class Test {
public static void main(String[] args) {
System.out.println(printHeart("*"));
}
//这段代码输出的是 i love java,被心形包围。
private static String printHeart(String input) {
int[] array = { 0, 1, 0, 0, 0, 1, 0,
1, 0, 1, 0, 1, 0, 1,
1, 0, 0, 1, 0, 0, 1,
1, 4, 5, 2, 3, 4, 1,
0, 1, 0, 0, 0, 1, 0,
0, 0, 1, 0, 1, 0, 0,
0, 0, 0, 1, 0, 0, 0 };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; i++) {
if (i % 7 == 0)
sb.append("\n");
if (array[i] == 0)
sb.append(" ");
else if (array[i] == 4)
sb.append(" ");
else if (array[i] == 5)
sb.append(" I ");
else if (array[i] == 2)
sb.append("Lvoe ");
else if (array[i] == 3)
sb.append("Java");
else
sb.append(" " + input);
}
return sb.toString();
}
}
以后再打印图案是直接套用对的方法即可。