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计算器界面的实现
