java空心菱形


圖 1

 



要輸出如圖1所示的菱形,第一反應是看看這個菱形有什么特點。在草稿紙上比划了半天,將圖1轉化成了圖2用數字表示的圖

                                                                                                 

 



                                                                                                      圖 2

比較圖1和圖2發現有以下特點:

(1)圖2中的每一個數字代表圖1中每個*號在所在行的列號。

(2)6+6、5+7、4+8、3+9、2+10、1+11均等於12。

由於菱形是對稱的,所以先考慮上半部分,即如圖3所示

                                                                                                  
                                                                                                    

 


                                                                                                       圖 3

仔細觀察圖3,可以發現:

(1)圖3為6行11列。

(2)左半部分第1行為6、第2行為5、..............、第6行為1;由此可知外循環應使用for(int i=6;i>=1;i--)

(3)用i代表行號,j代表列號;當i=j或者j=12-i時該位置的應輸出*號,其他位置輸出空格。

有了以上分析,就可以寫出輸出圖3所示圖形的核心代碼,如下:

[java] view plain copy

    for(int i=6;i>=1;i--){   //菱形的上半部分  
        for(int j=1;j<=11;j++){  
            if(i==j||j==12-i){  
                System.out.print("*");  
            }else{  
                System.out.print(" ");  
            }  
        }  
        System.out.println();  
    }  

要想輸出菱形的下半部分,只需將外循環改為for(int i=2;i<=6;i++)即可。

看到這兒,相信你不用看下面的完整代碼,自己就可以完全寫出實現的代碼了!如果你還沒有寫,動手實踐一下吧!


附錄:完整代碼:

[java] view plain copy

    public class Diamond {  
      
        public static void main(String[] args) {  
            // TODO Auto-generated method stub  
      
            for(int i=6;i>=1;i--){   //菱形的上半部分  
                for(int j=1;j<=11;j++){  
                    if(i==j||j==12-i){  
                        System.out.print("*");  
                    }else{  
                        System.out.print(" ");  
                    }  
                }  
                System.out.println();  
            }  
              
            for(int i=2;i<=6;i++){    //菱形的下半部分  
                for(int j=1;j<=11;j++){  
                    if(i==j||j==12-i){  
                        System.out.print("*");  
                    }else{  
                        System.out.print(" ");  
                    }  
                }  
                System.out.println();  
            }  
        }  
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM