A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

xhz123

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

第一次写贴有点小紧,不知道前面的前辈们有没有撞贴的,如果有撞贴的,不好意思,你都毕业了,拿不了我怎么样,以下是我全手打的代码,及全用脑子想的处理方法。
通过这几天的利用循环的嵌套,输出执行一些不同形状的输出结果,如比较常见的是打印出:
****
****
****
这种结果的,执行的逻辑很简单,就是外循环是打印行数,内循环是打印列数,代码如下:
public static void main(String[] args) {
    for (int i = 1; i <=3 ; i++) {
        for (int j = 1; j <=4 ; j++) {
          System.out.print("* ");
                   }
        System.out.println();
    }
针对代码中i为行数,j 为列数,所以打印这些形状的就能找到规律了。
o * o
* o *
o * o
如上图出现的,这种规律是比较相似,但从第一行可以看出第一个和最后一个是跟其他的不一样,第二行就跟到第二个和倒数第二个,所以针对这个逻辑,从第一行到最后一行的顺序就从1,2,3…,后面而是反过来的,所以就能用判断语句来修改,代码如下:
public static void main(String[] args) {
    for (int i = 1; i <=3 ; i++) {
        for (int j = 1; j <=3 ; j++) {
            if(j==i || j==4-i){
                System.out.print("o ");
            }else {
                System.out.print("* ");
            }

        }
        System.out.println();
    }
}
写代码就是按规律和逻辑来一步步执行,只要能按顺序走,就能找到好多方法,如:
* * * * *
* * * *
  * * *
   * *
    *
这个输出结果,空格的地方从上往下就是从0,1,2,3的地方填写,而*号而且是相反,也是说外循环越往后执行,内循环执行的次数越少,就能快速找到方法,代码如下:
public static void main(String[] args) {
    for (int i = 5; i >= 1; i--) {
        for (int k = 1; k < 6 - i; k++) {
            System.out.print(" ");
        }

        for (int j = i; j >= 1; j--) {
            System.out.print("* ");
        }
        System.out.println();
    }
}

就是在外循环中套两个内循环,一个负责打印空格,一个负责打印*,利用递减的规律,算出每次执行要打印出多少个空格和*号,正三角和这个倒三角差不多,利用递增的规律来算,就不多描述了。当然也有特殊的,没错压轴的来了,请上图:
    *
   ***
  *****
*******
*********
*******
  *****
   ***
    *
平行四边形闪亮登场,前面的只是小菜,就是要衬托出这个的复杂,这个就如同镜像,当然,你可以用倒三角的方法和正三角的方法组合打印出来,但那种太长,所以要用短一点的,上代码!!!!
public static void main(String[] args){
                for (int i=1;i<=9;i++){
                        int y=5-i;
                        y=y<0?y*-1:y;
                        for (int j=1;j<=y;j++){
                                System.out.print(" ");
                        }
                        for(int z=1;z<=2*(5-y)-1;z++){
                                System.out.print("*");
                        }
                        System.out.println("");
                }
        }
感觉如何,没错,像镜子一样的输出方法,就是利用0为中间点,向上下进行,就是为正负数的方法来,再用绝对值的方式,就能得出第一行和最后一行的输出一样,以此类推,就能得出这样的结果。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马