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();}
运行效果: