publicclassTest{publicstaticvoidmain(String[] args){int line =5;// 菱形的上半部分行数// 上半部分菱形的输出for(int i =1; i <= line; i++){for(int j =1; j <= line - i; j++){
System.out.print(' ');}// 每一行由分为两段输出char ch ='A';for(int j =1; j <= i; j++){
System.out.print(ch);
ch +=1;}
ch -=2;for(int j =1; j <= i -1; j++){
System.out.print(ch);
ch -=1;}
System.out.println();}// 下半部分菱形的输出for(int i = line -1; i >=1; i--){for(int j =1; j <= line - i; j++){
System.out.print(' ');}// 每一行由分为两段输出char ch ='A';for(int j =1; j <= i; j++){
System.out.print(ch);
ch +=1;}
ch -=2;for(int j =1; j <= i -1; j++){
System.out.print(ch);
ch -=1;}
System.out.println();}}}
publicclassTest{publicstaticvoidmain(String[] args){int line =7;// 定义两个变量来标记每一行,'*' 的位置int a =(line +1)/2;int b =(line +1)/2;// 标记 '*'是否已经扩张到矩形左右边界boolean flag =true;for(int i =1; i <= line; i++){for(int j =1; j <= line; j++){// 当j的值等于a或b是打印'*'if(j == a || j == b){
System.out.print('*');}else{
System.out.print('#');}}// && flag 是保证当'*' 第一次扩张到矩形左右边界时,才可执行 flag = false;if(a == line && flag){
flag =false;}// flag 为true时 两个'*'向外扩张,为false时 两个'*'向内收缩if(flag){
a +=1;
b -=1;}else{
a -=1;
b +=1;}
System.out.println();}}}