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(); }
运行效果:
下一篇:
Java Swing计算器界面的实现