目录
一 用“*”输出三角形
public class Test {
public static void main(String[] args) {
java.util.Scanner w = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数:");
int line = w.nextInt();
// 用最外层for循环控制行数
for (int x = 1; x <= line; x++) {
// 控制三角形旁边的空格数量
for (int i = 1; i <= line - x; i++) {
System.out.print(" ");
System.out.print(" ");
}
// 将三角形分为左右两个部分,首先输出左边,
// 由第一行往下依次输出甲乙
for (int j = 1; j <= x; j++) {
System.out.print("*");
System.out.print(" ");
}
// 输出右边三角形,k<=x-1控制第一行不输出,
// 以后每行比左边输出少一个
for (int k = 1; k <= x - 1; k++) {
System.out.print("*");
System.out.print(" ");
}
// 每行输出完成,进行换行
System.out.println("");
}
}
}
二 用“*”输出六边形
public class Test {
public static void main(String[] args) {
int line = 8;
// 输出六边形可以将其分为上梯形和下梯形
// 用最外层for循环控制行数,这里由于输出六边形,
// 所以x初始值从3开始
for (int x = 3; x <= line; x++) {
// 控制梯形旁边的空格数量
for (int i = 1; i <= line - x; i++) {
System.out.print(" ");
}
// 和三角形相同输出左右星星
for (int j = 1; j <= x; j++) {
System.out.print("*");
}
for (int k = 1; k <= x; k++) {
System.out.print("*");
}
// 每行输出完成换行
System.out.println("");
}
// 控制行数,增大最小值,使得呈现梯形
for (int x = line; x >= 3; x--) {
for (int i = line-x; i >= 1; i--) {
System.out.print(" ");
}
// 需要倒立输出,所以星星数由大到小
for (int j = x; j >= 1; j--) {
System.out.print("*");
}
for (int k = x; k >= 1; k--) {
System.out.print("*");
}
System.out.println("");
}
}
}
三 用“*”输出空心菱形
public class Test {
public static void main(String[] args) {
int line = 9;
// 空心菱形依旧分为上下部分
// 控制上半部分行数
for (int x = 1; x <= line; x++) {
// 控制菱形左侧空格数量
for (int i = 1; i <= line - x; i++) {
System.out.print(" ");
}
// 上半部分也可以分为左右两边,
// 由于是空心菱形,所以左边每行只需要输出一个星星,其余输出空格
for (int j = 1; j <= x-1; j++) {
if (j==1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
// 右侧部分则是全部输出空格,再换行时输出一个星星即可
for (int k = 1; k <= x-1; k++) {
System.out.print(" ");
}
System.out.println("*");
}
// 菱形下半部分与上面同理
for (int x = line-1; x >= 1;x--){
for (int i = line-x-1; i >= 0; i--) {
System.out.print(" ");
}
for (int a = x; a > 1;a--) {
if (a == x){
System.out.print("*");
}else{
System.out.print(" ");
}
}
for(int b = x-1; b >= 1;b--){
System.out.print(" ");
}
System.out.println("*");
}
}
}
四 用“*”输出“拱门”
public class Test {
public static void main(String[] args) {
// 此方法是将其分为左右两部分进行输入
// 控制总的行数
for (int x = 1; x <= 8; x++) {
// 左侧直接进行星星依次逐行输出
for (int i = 1; i <= 8 - x; i++) {
System.out.print("*");
}
for (int j = 1; j <= x-1; j++) {
// 用于输出中间连接出的一个星星
if(j == 1){
System.out.print("*");
}
// 输出用于间隔开右边三角形
System.out.print(" ");
}
// 输出空格,用于间隔右边三角形
for (int k = 1; k <= x-2 ; k++) {
System.out.print(" ");
}
// 右侧星星输出
for(int m = 0;m <= 8-x ; m++){
System.out.print("*");
}
System.out.println("");
}
}
}