参加java培训,周末作业,要求通过控制台输出以下几种图形
以下是源代码,还有一点bug,解决中
package Testweek;
import java.util.Scanner;
public class weekEnd {
public static void main(String[] args) {
Scanner q = new Scanner(System.in);
do {
System.out.println("请输入数字选择要画的形状:");
System.out.println("1:矩形;2:空心矩形;3:数字金字塔;4:字母金字塔;5:空心菱形;");
PrintThis();
System.out.println("是否继续绘制图形(y/n):");
}while (q.next() == "y");
System.out.println("谢谢使用!——power by HY");
}
public static void PrintThis(){
int x,y,h,n;
Scanner s = new Scanner(System.in);
switch (s.nextInt()) {
case 1:
System.out.print("请输入矩形的长:");
x = s.nextInt();
System.out.print("请输入矩形的宽:");
y = s.nextInt();
Cube(x,y);
break;
case 2:
System.out.print("请输入空心矩形的长:");
x = s.nextInt();
System.out.print("请输入空心矩形的宽:");
y = s.nextInt();
CubeEnpty(x,y);
break;
case 3:
System.out.print("请输入数字金字塔的高度:");
h = s.nextInt();
SingelNum(h);
break;
case 4:
System.out.print("请输入字母金字塔的高度:");
h = s.nextInt();
SingelNum(h);
break;
case 5:
System.out.print("请输入输出菱形的顶格位数:");
n = s.nextInt();
SingelNum(n);
break;
default:
System.out.println("您的输入有误!!");
break;
}
}
public static void Cube(int x,int y){
for (int i = 0; i < x; i++) {//行
for (int j = 0; j < y; j++) {//列
System.out.print("* ");
}
System.out.println();
}
}
public static void CubeEnpty(int x,int y){
for (int i = 0; i < x; i++) {//行
for (int j = 0; j < y; j++) {//列
//if(i == 0 || i == x-1){
if((i == 0 || i == x-1)||(j == 0 || j == y-1)){
System.out.print("* ");
}
else System.out.print(" ");
}
System.out.println();
}
}
public static void Singel(int h){
for (int i = 0; i < h; i++) {//行
for (int j = 0; j < i+1; j++) {//列
System.out.print(" ");
}
for (int j = 0; j < h-i; j++) {//列
System.out.print("* ");
}
System.out.println();
}
}
public static void SingelNum(int h){
for (int i = 1; i <= h; i++) {//行
for (int j = 1; j <= h-i; j++) {//列
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {//列
System.out.print(i+" ");
}
System.out.println();
}
}
public static void triangleWord(int h){
for (int i = 0; i < h; i++) {//行
for (int j = 0; j < h-i; j++) {//列
System.out.print(" ");
}
for (int j = 0; j < i; j++) {//列
char w = (char)(i+64);
System.out.print(w+" ");
}
System.out.println();
}
}
//输出菱形改良版
public static void Rhombus(int n){
for (int i = 0; i < (2*n+1); i++) {
for (int j = 0; j < (2*n+1); j++) {
if(i <= n &&(j == n-i || j == n+i)){
System.out.print("*");
}
else if( i > n &&(j == 3*n-i || j == i-n)){
System.out.print("*");
}
else {
System.out.print("-");
}
}
System.out.println();
}
}
}