菱形代码如下:
package demo;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//与键盘建立连接
System.out.println("请输入需要打印的菱形:");
int num = sc.nextInt();//得到菱形最大对角线高度
// 上半部分
// 外循环控制每行打印内容
for (int i = 0; i < num; i++) {
// 控制此行打印空白数量
for (int j = 0; j < num - i - 1; j++) {
System.out.print(" ");
}
// 控制此行打印*的数量
for (int j = 0; j <= i; j++) {
System.out.print("* ");
}
System.out.println();// 换行打印下一行
}
// 下半部分
// 上半部分因最长一行已经打印,所以num-1
for (int i = 0; i < num - 1; i++) {
// 控制每行空白数量
for (int j = 0; j <= i; j++) {
System.out.print(" ");
}
// 控制每行*数
for (int j = 0; j <= num - i - 2; j++) {
System.out.print("* ");
}
System.out.println();// 换行打印
}
}
}
打印结果如下:
空心菱形代码如下:
package demo;
import java.util.Scanner;
public class Test1_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);// 与键盘建立连接
System.out.println("请输入需要打印的菱形:");
int num = sc.nextInt();// 得到菱形最大对角线高度
//上半部分
for (int i = 1; i <= num; i++) {
// 打印空格
for (int j = 1; j <= num - i; j++) {
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 = 1; i <= num - 1; i++) {
// 打印空格
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
//判断第一个和最后一个需要打印*
for (int j = 1; j <= num - i; j++) {
if (j == 1 || j == num - i) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}
System.out.println();//换行打印下一行
}
}
}
打印结果如下: