图形的打印考验的是逻辑思维能力,与计算机语言熟练程度无关。我们需要思考菱形的结构,可以把它分为两个三角形
代码如下:
for (int i = 1; i <=5; i++) {
for (int k=5;k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();//换行
}
for (int i = 4; i>=1; i--) {
System.out.print(" ");
for (int k=4;k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();//换行
}
打印结果为:
那么我们如何打印空心菱形呢?
可以理解为,只有边上有 * 输出,其余边缘为空格
代码如下
for (int i = 1; i <=5; i++) {
for (int k=5;k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
if (j==1||j==i){
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();//换行
}
for (int i = 4; i>=1; i--) {
System.out.print(" ");
for (int k=4;k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
if (j==1||j==i){
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();//换行
}
打印结果为:
如果要打印任意边长的菱形呢?
我们可以对上面的菱形进行观察,可以发现,只要将边长的上限修改即可。
代码如下:
Scanner sc=new Scanner(System.in);
System.out.print("请输入菱形的边长:");
int a=sc.nextInt();
for (int i = 1; i <=a; i++) {
for (int k=a;k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();//换行
}
for (int i = (a-1); i>=1; i--) {
System.out.print(" ");
for (int k=(a-1);k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();//换行
}
打印结果为:
那么空心菱形也是如此。
代码如下:
Scanner sc=new Scanner(System.in);
System.out.print("请输入空心菱形的边长:");
int a=sc.nextInt();
for (int i = 1; i <=a; i++) {
for (int k=a;k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
if (j==1||j==i){
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();//换行
}
for (int i = (a-1); i>=1; i--) {
System.out.print(" ");
for (int k=(a-1);k>=i;k--){
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
if (j==1||j==i){
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();//换行
}
打印结果为: