Java利用for循环输出空心菱形的实例代码
编写程序,在控制台上输出空心菱形,对角距离为6.
代码如下:
public class Diamond {
public static void main(String[] args) {
printHollowRhombus(6)
}
public static void printHollowRhombus(int size) {
if (size % 2 == 0) {
size++// 计算菱形大小
}
for (int i = 0i <size / 2 + 1i++) {
for (int j = size / 2 + 1j >i + 1j--) {
System.out.print(" ")// 输出左上角位置的空白
}
for (int j = 0j <2 * i + 1j++) {
if (j == 0 || j == 2 * i) {
System.out.print("* ")// 输出菱形上半部边缘
} else {
System.out.print(" ")// 输出菱形上半部空心
}
}
System.out.println("") //换行
}
for (int i = size / 2 + 1i <sizei++) {
for (int j = 0j <i - size / 2j++) {
System.out.print(" ")// 输出菱形左下角空白
}
for (int j = 0j <2 * size - 1 - 2 * ij++) {
if (j == 0 || j == 2 * (size - i - 1)) {
System.out.print("* ")// 输出菱形下半部边缘
} else {
System.out.print(" ")// 输出菱形下半部空心
}
}
System.out.println("") //换行
}
}
}
效果如图:
打印菱形其实很简单,记得高中数学的公式么 Sn =a1+(n-1)*d打印菱形一般分成两部分,第一部分是打印正三角(一个空白三角+星星正三角),然后是倒三角(空白三角+星星到三角)
每个三角形分别用两个for循环嵌套实现
例如:
for (int i = 1i <4i++) {
for (int j = 1j <= 1 + (i - 1) * 2j++) {
System.out.print("*")
}
System.out.println()
}
两个for循环,外面的for循环控制输出的星星或空白的行,里面的for循环控制输出列。
例如上面外层for值分别是 1 2 3 。
而我们相输出的列是 1 3 5 7.....
这个数列递增值d=2// Sn =a1+(n-1)*d
那么套用公式里面的循环就应写for(int j=1j<=1+(i-1)*2j++)
就能输出 1 3 5 7 个星星
倒三角也一样 套公式
倒三角的d值为-2 ,
用了这个公式,输出三角真的跟浮云一样简单 // Sn =a1+(n-1)*d