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

打印四行四列的星号:

****
****
****
****
    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;j1;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;j1;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" ");
            }
            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;j1;j++) {
                System.out.print("*");
            }
            for(int j=0;j"*");
            }
            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;j1;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;j1;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;j1;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();
        }
    }

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

总结

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

你可能感兴趣的:(Java)