【java练习】来打印各种形状的三角形吧!!(循环练习)

来源:互联网 发布:ant编译java代码 编辑:程序博客网 时间:2024/05/16 05:55

打印四行四列的星号:

****************
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<4;j++) {                System.out.print("*");//连续打印*,不换行            }            System.out.println();//换行        }    }

打印四行三列的星号:

************
    public static void main(String[] args) {        for(int i=0;i<4;i++) {//i控制行            for(int j=0;j<3;j++) {//j控制列                System.out.print("*");            }            System.out.println();        }    }

用星号打印正立的直角三角形:

**********
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<i+1;j++) {//j是随着i的变化而变化的                System.out.print("*");            }            System.out.println();        }    }

用星号打印倒立的直角三角形!

**********
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<4-i;j++) {                System.out.print("*");            }            System.out.println();        }    }

直角在右边的正立直角三角形!!

   *  ** *******
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<3-i;j++) {                System.out.print(" ");            }            for(int j=0;j<i+1;j++) {                System.out.print("*");            }            System.out.println();        }    }

这个就是同一行先打印空格在再打印星号~因为空格和星号的变化规律不一样所以就分开写啦,行数控制的循环(外循环)其实没变的!

直角在右的倒立三角形

**** ***  **   *
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<i;j++) {                System.out.print(" ");            }            for(int j=0;j<4-i;j++) {                System.out.print("*");            }            System.out.println();        }    }

思路和上面一样(:з」∠)

用星号打印一个对称的三角形!

   *  *** ************
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<3-i;j++) {                System.out.print(" ");            }            for(int j=0;j<(i+1)*2-1;j++) {                System.out.print("*");            }            System.out.println();        }    }

上面的这种是直接通过观察行和列的关系写的!
第1行 1个* 1=1*2-1
第2行 3个* 3=2*2-1
第3行 5个* 5=3*2-1
。。。 j=i*2-1

下面这种是通过分割这个三角形,分成每行*增加一个的两个直角三角形。

   *|  **|* ***|******|***
    public static void main(String[] args) {        for(int i=0;i<4;i++) {            for(int j=0;j<3-i;j++) {                System.out.print(" ");            }            for(int j=0;j<i+1;j++) {                System.out.print("*");            }            for(int j=0;j<i;j++) {                System.out.print("*");            }            System.out.println();        }    }

打印一个乘法口诀表吧

1x1=1   2x1=2   2x2=4   3x1=3   3x2=6   3x3=9   4x1=4   4x2=8   4x3=12  4x4=16  5x1=5   5x2=10  5x3=15  5x4=20  5x5=25  6x1=6   6x2=12  6x3=18  6x4=24  6x5=30  6x6=36  7x1=7   7x2=14  7x3=21  7x4=28  7x5=35  7x6=42  7x7=49  8x1=8   8x2=16  8x3=24  8x4=32  8x5=40  8x6=48  8x7=56  8x8=64  9x1=9   9x2=18  9x3=27  9x4=36  9x5=45  9x6=54  9x7=63  9x8=72  9x9=81  
    public static void main(String[] args) {        for(int i=1;i<10;i++) {            for(int j=1;j<i+1;j++) {                System.out.print(i+"x"+j+"="+i*j+"\t");            }            System.out.println();        }    }

这个i和j等于0开始会比较方便!可以直接用于乘法口诀的内容。
“\t”这个是制表符!可以很完美的让每一行每一个对齐!强迫症的首选!

打印个菱形吧~

  * ******** ***  *
    public static void main(String[] args) {        for(int i=0;i<3;i++) {            for(int j=0;j<2-i;j++) {                System.out.print(" ");            }            for(int j=0;j<(i+1)*2-1;j++) {                System.out.print("*");            }            System.out.println();        }        for(int i=0;i<2;i++) {            for(int j=0;j<i+1;j++) {                System.out.print(" ");            }            for(int j=0;j<(2-i)*2-1;j++) {                System.out.print("*");            }            System.out.println();        }    }

嘿呀,就是上下两个三角形拼起来

打印一个空心的菱形吧~

  * * **   * * *  *
public static void main(String[] args) {        for(int i=0;i<3;i++) {            for(int j=0;j<2-i;j++) {                System.out.print(" ");            }            for(int j=0;j<(i+1)*2-1;j++) {                if(j==0||j==(i+1)*2-2) {                    System.out.print("*");                }else System.out.print(" ");            }            System.out.println();        }        for(int i=0;i<2;i++) {            for(int j=0;j<i+1;j++) {                System.out.print(" ");            }            for(int j=0;j<(2-i)*2-1;j++) {                if(j==0||j==(2-i)*2-2) {                    System.out.print("*");                }else System.out.print(" ");            }            System.out.println();        }    }

输出星号的时候判断一下,如果是第一个或者最后一个再打印,如果都不是,就打印空格。

总结

我觉得还是必须先确定这个循环控制什么的,起点在哪结束条件是什么,然后分析一下行和列的关系,递增、递减,找找规律!一定要先理清楚外面的循环再写里面的循环(:з」∠)

阅读全文
0 0
原创粉丝点击