一,正方形
思想: 每行*的数量为行数的两倍!
输出时为两层循环,①输出n行×2个*;②执行n次。
=====代码如下:
public class shape {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 输出一个正方形图案 *
int rows = 6; // 行数
int stars = rows * 2;// 每行的星数量
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= stars; j++) {
System.out.print("*");// 注意此处不可换行
}
System.out.println();// 换行
}
}
======
将正方形改为空心的。
思想:
第一行输出所有的*;最后一行输出所有的*;
第一列输出一个*;最后一列输出一个*;其他的时候输出空格!
代码如下:
@Test // 空心正方形
public void shape1() {
int rows = 6; // 行数
int stars = rows * 2;// 每行的星数量
for (int i = 1; i <= rows; i++) {
if (i == 1 || i == rows) {
for (int j = 1; j <= stars; j++) {
System.out.print("*");// 注意此处不可换行
}
} else {
for (int j = 1; j <= stars; j++) {
if (j == 1 || j == stars) {
System.out.print("*");// 注意此处不可换行
} else {
System.out.print(" ");// 此处输出空格
}
}
}
System.out.println();// 换行
}
}
=====
输出等边三角形
思想:
计算公式如下:
行数 *的个数 空格的个数(默认行数为3)
1 (2×1)-1 3(行数)-1
2 (2×2)-1 3-2
3 (2×3)-1 3-3
代码如下:
@Test // 输出等边三角形
public void shape2() {
int rows = 3;
for (int i = 1; i <= rows; i++) {
int stars = (2 * i) - 1;// 每一行*的个数
int space = rows - i;// 空格的个数
for (int j = 1; j <= space; j++) {
System.out.print(" ");
}
for (int j = 1; j <= stars; j++) {
System.out.print("*");
}
System.out.println();
}
}