您的位置:首页 > 编程语言 > Java开发

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

2017-10-28 18:44 447 查看

打印四行四列的星号:

****
****
****
****


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();
}
}


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

总结

我觉得还是必须先确定这个循环控制什么的,起点在哪结束条件是什么,然后分析一下行和列的关系,递增、递减,找找规律!一定要先理清楚外面的循环再写里面的循环(:з」∠)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java