📜  在Java中打印三角形图案(1)

📅  最后修改于: 2023-12-03 14:51:17.469000             🧑  作者: Mango

在Java中打印三角形图案

在Java中,我们可以使用循环语句和条件语句来打印各种形状的图案,包括三角形。

1. 打印等腰直角三角形

等腰直角三角形是一种比较简单的图形,我们可以使用嵌套循环来打印。

for(int i=1; i<=5; i++){
    for(int j=1; j<=i; j++){
        System.out.print("* ");
    }
    System.out.println();
}

代码说明:

  • 第一层循环控制输出行数,循环5次。
  • 第二层循环控制每一行的输出内容,第一行输出1个“”,第二行输出2个“”,以此类推。

代码输出:

*
* *
* * *
* * * *
* * * * *
2. 打印等边三角形

等边三角形是一种每行输出相同数量“”号的三角形。我们可以通过第一个循环控制行数,第二个循环控制每行输出的“”号数量。

int n = 5;
for(int i=0; i<n; i++){
    for(int j=0; j<n-i-1; j++){
        System.out.print(" ");
    }
    for(int k=0; k<=i*2; k++){
        System.out.print("*");
    }
    System.out.println();
}

代码说明:

  • 第一层循环控制输出行数,循环5次。
  • 第二层循环控制输出空格数量,空格数量的计算公式为n-i-1,因为每行的空格数是(n-1)-i
  • 第三层循环控制输出“”号数量,计算公式为2*i+1,第一行输出1个“”号,第二行输出3个“*”号,以此类推。

代码输出:

    *
   ***
  *****
 *******
*********
3. 打印翻转等边三角形

翻转等边三角形与等边三角形的思路相似,只是输出的方向不同。我们可以根据等边三角形的思路,只需要把第二个循环和第三个循环的输出顺序调换一下就可以。

int n = 5;
for(int i=n-1; i>=0; i--){
    for(int j=0; j<n-i-1; j++){
        System.out.print(" ");
    }
    for(int k=0; k<=i*2; k++){
        System.out.print("*");
    }
    System.out.println();
}

代码说明:

  • 第一层循环控制输出行数,循环5次。
  • 第二层循环控制输出空格数量,与等边三角形相同。
  • 第三层循环控制输出“*”号数量,与等边三角形相同。

代码输出:

*********
 *******
  *****
   ***
    *
4. 打印空心等边三角形

空心等边三角形与等边三角形的思路类似,只需要在输出每行“”号的位置进行判断,如果是第一行或者最后一行,输出全部的“”号,其他行只输出边缘的“*”号。

int n = 5;
for(int i=0; i<n; i++){
    for(int j=0; j<n-i-1; j++){
        System.out.print(" ");
    }
    for(int k=0; k<=i*2; k++){
        if(i==0 || i==n-1 || k==0 || k==i*2){
            System.out.print("*");
        }else{
            System.out.print(" ");
        }
    }
    System.out.println();
}

代码说明:

  • 第一层循环控制输出行数,与等边三角形相同。
  • 第二层循环控制输出空格数量,与等边三角形相同。
  • 第三层循环控制输出“”号数量,如果是第一行或者最后一行,或者是每行的边缘位置,输出“”号,否则输出空格。

代码输出:

    *
   * *
  *   *
 *     *
*********
5. 打印翻转空心等边三角形

翻转空心等边三角形与空心等边三角形的思路类似,只需要把第二层循环的顺序倒转一下就可以。

int n = 5;
for(int i=n-1; i>=0; i--){
    for(int j=0; j<n-i-1; j++){
        System.out.print(" ");
    }
    for(int k=0; k<=i*2; k++){
        if(i==0 || i==n-1 || k==0 || k==i*2){
            System.out.print("*");
        }else{
            System.out.print(" ");
        }
    }
    System.out.println();
}

代码说明:

  • 第一层循环控制输出行数,与等边三角形相同。
  • 第二层循环控制输出空格数量,与空心等边三角形相同。
  • 第三层循环控制输出“*”号数量,与空心等边三角形相同。

代码输出:

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

以上就是在Java中打印三角形图案的几种方法。您可以根据实际需求选择其中的一种,或者根据需要进行修改。