常用的输出方法为2个等腰三角形叠起来,但是那样循环太多,很容易把人绕昏!
package zuoye;
import java.util.Scanner;
public class Diamond {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入要打印行数:");
int line = 0;
line = input.nextInt();
if (line % 2 == 0 || line == 1) {
System.out.print("输入错误,只能为奇数");
}else{
int middle = (line + 1) / 2; // 求出中间行号
int k = 0; // k用于判断是输出上部的位置还是输出下部的位置
for (int i = 0 ; i < line; i++) { // 控制需要输出的行数,取值于 Scanner
if (i < middle) { // 如果当前行小于中间行,那么赋值k为上部符号和空格的输出
k++; // 上面的三角形的行号(包括中间那行)
} else {
k--; // 下面的三角形的行号(不包括中间那行)
}
for (int j = 0; j < middle + k; j++) { // 每行打印的空格和星星总数为:j middle + k = j 也就是总行数
System.out.print(j > middle - k ? "O" : " "); // middle-k的那个格子打印空格,后面的格子打印O
}
System.out.println();
}
}
input.close(); // 关闭输入
}
}
文章评论