黑马程序员技术交流社区

标题: 如何用java打印一个空心菱形 [打印本页]

作者: 肖天长    时间: 2015-8-11 23:36
标题: 如何用java打印一个空心菱形
本帖最后由 肖天长 于 2015-8-14 17:30 编辑

[hide=d8000000,8800000]class Diamond {  

public static void main(String[] args){  
  for(int i=1; i<=7; i++){      
   if(i<=3) {              //在1-3行打印正三角形  
    for(int j=1; j<=7; j++){     
     if(j==i+4||j==6-i){        
      System.out.print("*");  
     }   
     else{  
      System.out.print(" ");  
     }  
    }  
   }   
   else{  
    for(int k=1; k<=7; k++){    //在4-7行打印倒三角形
     if(k==i-4||k==11-i){      
      System.out.print("*");  
      }   
     else{  
      System.out.print(" ");  
     }  
     }  
    }  
  System.out.println();  
  }  
  }  
}  
[/hide]

QQ图片20150811232909.png (37.82 KB, 下载次数: 142)

我打印出来的

我打印出来的

作者: danniu1314    时间: 2015-8-11 23:36
class Damo
{   
   public static void main(String[] args)
   {  
       for(int i=1; i<=7; i++)  //一共7行
       {      
          if(i<=3)  //在1-3行打印正三角形
          {            
              for(int j=1; j<=7; j++) //每行7列  
              {     
                 if(j==i+3||j==5-i) //在i+3和5-i两个地方打印*,第一行这两者相等,所以只打印一个*  
                 {      
                     System.out.print("*");  
                  }   
                 else
                 {  
                    System.out.print(" ");  
                  }  
               }  
          }   
         else
         {  
             for(int k=1; k<=7; k++) //在4-7行打印倒三角形
             {   
                if(k==i-3||k==11-i) //在i-3和11-i两个地方打印*,最后一行这两者相等,所以只打印一个*
                {     
                    System.out.print("*");  
                 }   
                else
                {  
                    System.out.print(" ");  
                 }  
              }  
         }  
         System.out.println();  
      }  
    }  
}  
作者: danniu1314    时间: 2015-8-12 11:44
class Damo
{   
   public static void main(String[] args)
   {  
       for(int i=1; i<=7; i++)  //一共7行
       {      
          if(i<=3)  //在1-3行打印正三角形
          {            
              for(int j=1; j<=7; j++) //每行7列  
              {     
                 if(j==i+3||j==5-i) //在i+3和5-i两个地方打印*,第一行这两者相等,所以只打印一个*  
                 {      
                     System.out.print("*");  
                  }   
                 else
                 {  
                    System.out.print(" ");  
                  }  
               }  
          }   
         else
         {  
             for(int k=1; k<=7; k++) //在4-7行打印倒三角形
             {   
                if(k==i-3||k==11-i) //在i-3和11-i两个地方打印*,最后一行这两者相等,所以只打印一个*
                {     
                    System.out.print("*");  
                 }   
                else
                {  
                    System.out.print(" ");  
                 }  
              }  
         }  
         System.out.println();  
      }  
    }  
}  
作者: l_15562009298    时间: 2015-8-12 13:38
public static void main(String[] args) {
        //打印上半部空心菱形
        for(int i=1;i<=4;i++){    //外层for:四行
            
            for(int j=1;j<=4-i;j++){    //内层第一个for打印空格:3 2 1 0个空隔,值小于行减外层开始数.
                System.out.print(" ");
            }

            for(int j=1;j<=2*i-1;j++){        //内层第二个for打印星号:列1 3 5 7式增长,行为1 2  3 4式增长,则列小于2乘行减一
                if(j==1||j==2*i-1){            //挖空菱形,只在第一列和最后一列打印空号,其它打印空格
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
                 //System.out.print("*");
             }
             System.out.println();
        }
        //倒三角形
        for(int i=3;i>=1;i--){        //三行,是从大循环到小
            for(int j=1;j<=4-i;j++){    //空格列是从小到大,1 2 3,列是3 2 1列与行的关系是:行-1=列
                System.out.print(" ");
            }
            for(int j=1;j<=2*i-1;j++){    //打印星号:星号列是从大到小,行也是从大到小,不冲突,打印了来即可.
                if(j==1||j==2*i-1){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
                //System.out.print("*");
            }
            System.out.println();
        }
    }
}
作者: liyuan8    时间: 2015-8-12 20:34
public class Test{
public static void main(String[] args) {

for(int i=1;i<=10;i++){
for(int j=1;j<=10-i;j++){
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){
if(k==1 || k==2*i-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}

for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(" ");
}
for(int k=1;k<=19-2*i;k++){
if(k==1 || k==19-2*i){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}

}

}
作者: boboyuwu    时间: 2015-8-12 23:02
分我要了   帮你编译注释了下  效果图如下
package text;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

class lingxing{

11111111111111111111111.png (107.21 KB, 下载次数: 233)

11111111111111111111111.png

作者: boboyuwu    时间: 2015-8-12 23:03
boboyuwu 发表于 2015-8-12 23:02
分我要了   帮你编译注释了下  效果图如下
package text;

分我要了     帮你编译并注释了一下 运行效果图如下
package text;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

class lingxing{
       
        lingxing(){
                int i,j,k;   //控制菱形行和列
                for(i=1;i<=4;i++)              //控制行数,4行
                {for(j=0;j<4-i;j++)
                        System.out.print(" ");      //控制输出空格数
                 for(k=1;k<=2*i-1;k++)
                 if(k==1||k==2*i-1)
                 System.out.print("*"); //控制输出*数
                 else
                 System.out.print(" ");
                 System.out.println("");
                }
                for(i=1;i<=3;i++)               // 控制输出下面3行
                {for(j=1;j<=i;j++)
                System.out.print(" ");
                for(k=0;k<7-2*i;k++)
                       
            if(k==0||k==6-2*i)       
                System.out.print("*");
            else
            System.out.print(" ");
                System.out.println("");
                }
               
        }
}


public class text{

        public static void main(String[] args)throws IOException{
                     new lingxing();
               }
                
          }
          
       


11111111111111111111111.png (107.21 KB, 下载次数: 251)

11111111111111111111111.png

作者: HwH199209    时间: 2015-8-12 23:10
赞啊!!!
作者: lingxius    时间: 2015-8-14 17:20
这个完全没技术难度嘛
作者: 0803_hang    时间: 2015-8-16 23:19
class PrintLingXing {
        public static void main(String[] args) {
        PrintLingXing(9);
        }
        private static void PrintLingXing(int n){
                String[][] arr= new String[n][n];
                int mid = (n-1)/2;
                for (int i = 0; i<n;i++ )
                {
                        for (int j=0; j<n;j++)
                        {
                                arr[i][j]=" ";
                        }
                }
                for (int i = 0; i<n;i++ )
                {
                        for (int j=0; j<n;j++)
                        {
                                if(j==mid&&i<=mid)
                                {
                                                arr[i][mid-i]="*";
                                                arr[i][mid+i]="*";
                                }
                                if(j==mid&&i>mid)
                                {
                                                arr[i][mid-(n-1-i)]="*";
                                                arr[i][mid+(n-1-i)]="*";
                                }
                        }
                }
                for (int i=0;i<n ; i++)
                {
                        for (int j=0;j<n ; j++)
                        {
                                System.out.print(arr[i][j]);
                        }
                        System.out.println();
                }
        }
}
作者: 739994889    时间: 2015-8-18 19:25
必须顶一个
作者: 夸克    时间: 2015-8-21 15:17
这个完结了吗?上边的好乱,我有更简洁明了的方法
作者: 肖天长    时间: 2015-8-21 15:49
夸克 发表于 2015-8-21 15:17
这个完结了吗?上边的好乱,我有更简洁明了的方法

完了呐,,不介意你拿出来分享啊
作者: yaochaoyang    时间: 2015-9-4 21:30
给你看一个我的,public class IfText {         public static void main(String [] args){                 for(int a=1;a<=4;a++){                         for(int b=a;b<4;b++){                                 System.out.print(" ");                                 }                         System.out.print("*");                                 for(int c=a;c>=1;c--){                                 System.out.print(" ");                                                         }                         for(int d=1;d<a;d++){                                 System.out.print(" ");                         }                         System.out.print("*");                                 System.out.println();                 }                 for(int a=1;a<4;a++){                         for(int b=1;b<=a;b++){                                 System.out.print(" ");                         }                         System.out.print("*");                                 for(int c=a;c<=3;c++){                                 System.out.print(" ");                                         }                 for(int d=a;d<3;d++){                                 System.out.print(" ");                         }                 System.out.print("*");                                 System.out.println();         }  } }
作者: 兴许不接客    时间: 2015-9-6 22:02
看迷糊了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2