java实现打印菱形(任意输入数字打印任意阶菱形)

1.我们举例一个五阶菱形作为例子:如图

我们要打印输出如上图形,我们要先打印上半部分,第一行4个空格,然后打印1个星号,换行。接着打印3个空格,3个星号。2个空格,5个星号。1个空格和7个星号。最后一行打满9个星号。

我们可以通过如下代码实现:

for(int i=1;i<=5;i++) {
			for(int j=1;j<=5-i;j++) {
				System.out.print(" ");//打印空格
			}
			for(int j=1;j<=2*i-1;j++) {//打印上部分*
				System.out.print("*");
			}
			System.out.println();
		}

下半部分只需要打印4行 *,空格数呈现1,2,3,4分布。 代码实现如下:

//打印下部分*
		for(int i=4;i>=1;i--) {
			for(int j=1;j<=5-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=2*i-1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}

主要结构基本如上,当然还有其他巧妙写法,这里就列举这一种。完整代码:

package huo;
public class Demo1 {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++) {
			for(int j=1;j<=5-i;j++) {
				System.out.print(" ");//打印空格
			}
			for(int j=1;j<=2*i-1;j++) {//打印上部分*
				System.out.print("*");
			}
			System.out.println();
		}
		//打印下部分*
		for(int i=4;i>=1;i--) {
			for(int j=1;j<=5-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=2*i-1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		}
	}

2.我们还可以稍微变动一下代码,实现任意输入一个数,实现不同阶数的 * 号:主要用到

Scanner scan=new Scanner(System.in);用它需要导包:import java.util.Scanner;

具体代码如下:

Scanner scan=new Scanner(System.in);
		System.out.println("请输入一个数:");
		int next=scan.nextInt();
		
		for(int i=1;i<=next;i++) {
			for(int j=1;j<=next-i;j++) {
				System.out.print(" ");//打印空格
			}
			for(int j=1;j<=2*i-1;j++) {//打印上部分*
				System.out.print("*");
			}
			System.out.println();
		}
		//打印下部分*
		for(int i=next-1;i>=1;i--) {
			for(int j=1;j<=next-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=2*i-1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}

运行效果:

经验分享 程序员 微信小程序 职场和发展