import java.util.Scanner;
public class PrintShape {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
boolean flag= true;//设置值为true,进入循环
int row= 0;
int choice= 0;
do {//菜单栏循环
System.out.println("------请输入需要输出的图形------");
System.out.println("\t1.输出等腰三角形");
System.out.println("\t2.输出实心菱形");
System.out.println("\t3.输出空心菱形");
System.out.println("\t4.输出平行四边形");
System.out.println("\t5.退出系统");
System.out.println("\t请输入选项:");
choice= sc.nextInt();
switch(choice) {
case 1:
System.out.println("请输入行数i的值:");
row= sc.nextInt();
showEquicuralTriangle(row);
waitInput();
break;
case 2:
System.out.println("请输入上半部分的行数i的值:");
row= sc.nextInt();
showSolidDiamond(row);
waitInput();
break;
case 3:
System.out.println("请输入上半部分的行数i的值:");
row= sc.nextInt();
showHollowDiamond(row);
waitInput();
break;
case 4:
System.out.println("请输入行数i的值:");
row= sc.nextInt();
showParallelogram(row);
waitInput();
break;
case 5:
System.exit(0);
waitInput();
break;
}
}while(flag);//当退出系统时值为0,即为false是退出循环系统
}
public static void waitInput() {//每个选项之后,即输出图形的方法都调用此方法
Scanner sc= new Scanner(System.in);
System.out.println("按任意键继续。。。。。。");
sc.nextLine();
}
public static void showParallelogram(int row) {
int i,j,k;
for(i=1; i<=row; i++) {
for(j=1; j<=row-i; j++) {
System.out.print(" ");
}
for(k=1; k<=3*row; k++) {//平行四边形的宽可自定义为任意值,这里定义为3*row
System.out.print("*");
}
System.out.println();
}
}
public static void showHollowDiamond(int row) {
int i,j,k;
for(i=1; i<=row; i++) {//输出空心菱形的上半部分
for(j=1; j<=row-i; j++) {
System.out.print(" ");
}
for(k=1; k<=2*i-1; k++) {
if(k==1 || k==2*i-1) {//在实心菱形的基础上打印菱形的边缘,实心的内部为空即只有k==1和k==2*i-1时为*号
System.out.print("*");
}else {
System.out.print(" ");//菱形内部其他的都为空
}
}
System.out.println();
}//空心菱形的上半部分和等腰三角形是一样的
for(i=1; i<row; i++) {//输出空心菱形的下半部分
for(j=1; j<=i; j++) {//表示第i行有i个空格
System.out.print(" ");
}
for(k=1; k<=2*(row-i)-1; k++) {//表示第i行有2*(row-i)-1个*号
if(k==1 || k==2*(row-i)-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
public static void showSolidDiamond(int row) {
int i,j,k;
for(i=1; i<=row; i++) {//输出实心菱形的上半部分
for(j=1; j<=row-i; j++) {
System.out.print(" ");
}
for(k=1; k<=2*i-1; k++) {
System.out.print("*");
}
System.out.println();
}//实心菱形的上半部分和等腰三角形是一样的
for(i=1; i<row; i++) {//输出实心菱形的下半部分
for(j=1; j<=i; j++) {//表示第i行有i个空格
System.out.print(" ");
}
for(k=1; k<=2*(row-i)-1; k++) {//表示第i行有2*(row-i)-1个*号
System.out.print("*");
}
System.out.println();
}
}
public static void showEquicuralTriangle(int row) {//输入等腰三角形
for(int i=1; i<=row; i++) {//最外层循环,i控制行数
for(int j=1; j<=row-i; j++) {//j表示输出空格,即第i行有row-i个空格
System.out.print(" ");
}
for(int k=1; k<=i*2-1; k++) {//k表示输出*号,即第i行有i*2-1个*号
System.out.print("*");
}
System.out.println();//每输出一行后换行
}
}
}
菜单运行图:
输出等腰三角形:
public static void showEquicuralTriangle(int row) {//输入等腰三角形
for(int i=1; i<=row; i++) {//最外层循环,i控制行数
for(int j=1; j<=row-i; j++) {//j表示输出空格,即第i行有row-i个空格
System.out.print(" ");
}
for(int k=1; k<=i*2-1; k++) {//k表示输出*号,即第i行有i*2-1个*号
System.out.print("*");
}
System.out.println();//每输出一行后换行
}
}
输出等腰三角形运行图:
输出实心菱形:
public static void showSolidDiamond(int row) {
int i,j,k;
for(i=1; i<=row; i++) {//输出实心菱形的上半部分
for(j=1; j<=row-i; j++) {
System.out.print(" ");
}
for(k=1; k<=2*i-1; k++) {
System.out.print("*");
}
System.out.println();
}//实心菱形的上半部分和等腰三角形是一样的
for(i=1; i<row; i++) {//输出实心菱形的下半部分
for(j=1; j<=i; j++) {//表示第i行有i个空格
System.out.print(" ");
}
for(k=1; k<=2*(row-i)-1; k++) {//表示第i行有2*(row-i)-1个*号
System.out.print("*");
}
System.out.println();
}
}
输出实心菱形运行图:
输出空心菱形:
public static void showHollowDiamond(int row) {
int i,j,k;
for(i=1; i<=row; i++) {//输出空心菱形的上半部分
for(j=1; j<=row-i; j++) {
System.out.print(" ");
}
for(k=1; k<=2*i-1; k++) {
if(k==1 || k==2*i-1) {//在实心菱形的基础上打印菱形的边缘,实心的内部为空即只有k==1和k==2*i-1时为*号
System.out.print("*");
}else {
System.out.print(" ");//菱形内部其他的都为空
}
}
System.out.println();
}//空心菱形的上半部分和等腰三角形是一样的
for(i=1; i<row; i++) {//输出空心菱形的下半部分
for(j=1; j<=i; j++) {//表示第i行有i个空格
System.out.print(" ");
}
for(k=1; k<=2*(row-i)-1; k++) {//表示第i行有2*(row-i)-1个*号
if(k==1 || k==2*(row-i)-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
输出空心菱形运行图:
输出平行四边形:
public static void showParallelogram(int row) {
int i,j,k;
for(i=1; i<=row; i++) {
for(j=1; j<=row-i; j++) {
System.out.print(" ");
}
for(k=1; k<=3*row; k++) {//平行四边形的宽可自定义为任意值,这里定义为3*row
System.out.print("*");
}
System.out.println();
}
}
输出平行四边形运行图:
退出菜单运行图:
退出菜单后按什么键都没有作用