黑马程序员技术交流社区

标题: 打印空心矩形和菱形 [打印本页]

作者: 迦罗叶    时间: 2014-2-21 13:51
标题: 打印空心矩形和菱形
首先打印一个空心矩形非常简单,一个小小的嵌套循环就可以了。那么我们要得到一个空心的,该有什么想法呢?我们来画图
*****           *****                     
*****           *---*
*****           *---*
*****           *---*
*****           *****
老师和我们,说过了外循环可以控制行数,内循环可以控制列数。那么大家有没有想到,1:只要外循环保持在第一轮和最后一轮的时候,即外循环最开始和最后一次的时候我们就可以全部用*,用x表示行数,y表示列数。是否当x是1,  5的时候我们都打实心,否则都用空格表示。
2:y表示列数,如果不管外循环循环到第几次,只要到了内循环的第一次和最后一次我们都用*来表示,其它位置就用空格
3:所以我们要用到判断语句了
  1.     for (int y = 1;y<=5 ;y++ )
  2.     {
  3.         if (x==1||x==5||y==1||y==5)
  4.         {
  5.            System.out.print("*");
  6.         }
  7.                        
  8.         else
  9.         {
  10.            System.out.print(" ");
  11.         }
  12.    }
  13. System.out.println();
  14.                 }
复制代码
以上就是一个空心矩形了
同理做一个空心菱形,我们先做一个实心的,一个等腰正三角和一个比上面小一号的等腰倒三角就可以。要把中间那掏空。我们只要有一个思想就是我们只要边所在的地方就是*,其它的都是空格就行
    *
   * *
  *   *
*     *
*       *
*     *
  *   *
   * *
    *
  1. for(int x = 1;x<=5;x++)
  2.                 {
  3.                         for (int y= x;y<=4 ;y++ )
  4.                         {
  5.                                 System.out.print(" ");
  6.                         }
  7.                         for (int z =1;z<=x ;z++ )
  8.                         {
  9.                                 if (z==1||z==x)
  10.                                 {
  11.                                         System.out.print("* ");
  12.                                 }
  13.                                 else
  14.                                 {
  15.                                         System.out.print("  ");
  16.                                 }
  17.                         }
  18.                         System.out.println();
  19.                 }
  20.                 for (int x=1;x<=4 ;x++ )
  21.                 {
  22.                         for (int y=1;y<=x ;y++ )
  23.                         {
  24.                                 System.out.print(" ");
  25.                         }
  26.                         for (int z=x;z<=4 ;z++ )
  27.                         {
  28.                                 if(z==x||z==4)
  29.                                 {
  30.                                         System.out.print("* ");
  31.                                 }
  32.                                 else
  33.                                 {
  34.                                         System.out.print("  ");
  35.                                 }
  36.                         }
  37.                         System.out.println();
  38.                 }
复制代码







作者: 俞帅明    时间: 2014-2-21 17:23
谢谢楼主分享,楼主辛苦了!




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