当前位置 博文首页 > 梦梦~~的博客:Java打印各种小图形,各种三角形、菱形
用java打印各种三角形,这是二重循环的引用,有外层循环(控制行数)、内层循环(控制每行具体*的个数)。想要打印各种三角形,关键在于准确找出外层与内层的关系。假如外层循环用i表示,内层用j表示,也是说,要找出i与j的关系。注意注意:i就是表示第几行,j表示当前行有几个 * 。
下面就由小编一个一个与大家一起找关系。
1,打印直角三角形
Scanner input=new Scanner(System.in);
System.out.print("请输入直角三角形的行数:");
int num=input.nextInt();
for(int i=1;i<=num;i++){//控制行数
for(int j=1;j<=2*i-1;j++){//控制每行打印*的个数
System.out.print("*");
}
System.out.println();
}
i(行数) | j(每行的个数) |
---|---|
1 | 1 |
2 | 3 |
3 | 5 |
由上可知,i与j的关系是:j=2*i-1
2,打印倒直角三角形
Scanner input=new Scanner(System.in);
System.out.print("请输入直角三角形的行数:");
int num=input.nextInt();
for(int i=1;i<=num;i++){//控制行数
for(int j=1;j<=num+1-i;j++){//控制每一行*的个数
System.out.print("*");
}
System.out.println();
}
i(行数) | j(每行的个数) |
---|---|
1 | 6 |
2 | 5 |
3 | 4 |
由上可知,i与j的关系是:j=总行数+1-i
3,打印等边三角形
// 打印行数
Scanner input = new Scanner(System.in);
System.out.print("请输入直角三角形的行数:");
int num = input.nextInt();
for (int i = 1; i <= num; i++) {
for (int m = 1; m <= num - i; m++) {// 输出空格
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {// 打印一行*
System.out.print("*");
}
System.out.println();
}
等边三角形有些特殊,因为它不仅要打印*,还要打印空格,每一行左边的那些空白部分都是打印出的空格,所以,等边三角形要找两个关系表,那就先找空格与外层i的关系,然后再找*与外层i的关系
i(行数) | m(每行的空格) |
---|---|
1 | 5 |
2 | 4 |
3 | 3 |
由上可知,i与m的关系是:j=总行数-i
i(行数) | j(每行的个数) |
---|---|
1 | 1 |
2 | 3 |
3 | 5 |
由上可知,i与j的关系是:j=2*i-1
4,打印菱形
Scanner input=new Scanner(System.in);
System.out.print("请输入菱形行数:");
int hang=input.nextInt();
int n=0;
if(hang%2==0){
System.out.println("构不成菱形");
return;
}else{
n=hang/2+1;
//打印上半部分
for(int i=1;i<=n;i++){//外层循环控制行数
for(int j=1;j<=n-i;j++){//打印每行的空格
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){//打印每行的*
System.out.print("*");
}
System.out.println();
}
//打印下半部分
for(int i=1;i<=hang-n;i++){//控制行数
for(int j=1;j<=i;j++){//打印空格
System.out.print(" ");
}
for(int k=1;k<=hang-2*i;k++){//打印每一行的*
System.out.print("*");
}
System.out.println();
}
}
打印菱形时,可以分成两部分,上面是一个等边三角形,下面是一个倒等边三角形。上一个例子已经说了等边三角形的关系,这里就不再多说了。
总结:用java打印各种图形,不管是三角形、菱形,还是矩形、梯形等等,其实关键都在于找出外层循环变量与内层循环变量的关系。
cs