本帖最后由 cxdzh 于 2014-10-20 15:34 编辑  
 
- class getPrism 
 
 - {
 
 -         public static void main(String[] args) 
 
 -         {
 
 -                 prism(80);//调用输出菱形的方法.参数决定此菱形的总行数.
 
 -         }
 
 -         //定义一个输出菱形的方法.hangShu这个变量代表要输出的菱形总行数..修改此变量即可输出不同行数的菱形.
 
 -         public static void prism(int hangShu)
 
 -         {
 
 -                 if (hangShu<3||hangShu>80)//实测3行以下无法称为菱形,80行以上在控制台输出效果也畸形了.
 
 -                 {
 
 -                         System.out.println("你要输出的菱形行数超出可执行范围!");
 
 -                         return;
 
 -                 }
 
 -                 
 
 -                 int shangHangShu=hangShu/2+hangShu%2;//判断尖角朝上部分的行数,总行数除以2,如果总行数是单数,上面多输出一行.
 
 -                 int xiaHangShu=hangShu/2;//尖角朝下部分的行数.
 
  
-                 for (int i=1;i<=shangHangShu;i++ )//从1开始循环,输出上半部分.
 
 -                 {
 
 -                         for(int j=0;j<shangHangShu-i;j++)//先打印空格,因为尖角朝上,总行数减去当前行数即为要打印的空格数.
 
 -                                 System.out.print(" ");
 
 -                         for(int h=1;h<=i*2-1;h++)//第1行1颗星,第2行3颗,第3行5颗,即每行打印数为行数*2-1)颗
 
 -                                 System.out.print("*");
 
 -                         System.out.println("");//一行打印完换行.
 
 -                 }
 
 -                 for (int i=xiaHangShu;i>0;i-- )//输出尖角下半部分.
 
 -                 {                        
 
 -                         for(int j=xiaHangShu;j>i-hangShu%2;j--)//下半部分空格打印次数=行数,但如果总行数是双数,则空格打印次数=行数-1
 
 -                                 System.out.print(" ");
 
 -                         for(int h=i*2-1;h>0;h--)//每行打印星星次数与上半部分相反.
 
 -                                 System.out.print("*");
 
 -                         System.out.println("");
 
 -                 }
 
 -         }
 
 - }
 
  复制代码 
 |