1.如图打印出空心菱形:
2.下面是逻辑实现代码:
package himi.hebao04; import java.util.Scanner; public class TestDemo08 {
public static void main(String[] args) {
int length = 1;// 存储菱形的边长的变量
Scanner sc = new Scanner(System.in);// 输入数据的扫描对象
System.out.println("请输入菱形的边长:");
length = sc.nextInt();// 获取输入的边长数值
/* 打印菱形的上半部分三角形 行数为length行 */
for (int i = 1; i <= length; i++) {// 需要打印的行数
for (int j = 1; j <= length - i; j++) {// 打印左边空白的区域,随行递减1
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {// 打三角形的区域
if (k == 1 || k == 2 * i - 1) {// 空心的获取 除每行第一个以及最后一个 外其余为空白 ,起始位置不再是1行1列,因为前面空格打印占位了
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
/* 打印菱形的下半部分三角形 中间行公用 故行数为length-1 */
for (int i = length - 1; i > 0; i--) {
for (int j = 1; j <= length - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
if (k == 1 || k == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
} }