打印如下的图形:菱形
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
这里有几种解法:
从图形中可以看出,“*”中间有空格隔开,且各行开头处可以有逐级减少的空格。“*”与空格可以视为一个整体
1.只有for循环
可以选择用两个for循环分别控制空格与“ *”的输出。在这两个循环体外还需一个循环体用以控制输出的次数。其中内部两个循环体的判断条件可以与最外层关联。
package ;
public class Main {
public static void main(String[] args) {
for (int i=1;i<=5;i++){
for (int j=5-i;j>0;j--) {
(" ");
}
for (int m=0;m<i;m++) {
(" *");
}
(" ");
}
for (int i=1;i<=5;i++){
for (int j=i;j>0;j--) {
(" ");
}
for (int m=5;m>i;m--) {
(" *");
}
(" ");
}
}
}
2.数组与for循环连用
由图可以看出“*”的输出很有规律,因此可以选择添加一个数组,对其中的数据进行%处理,再进行for循环操作。
package ;
public class Main {
public static void star(int[] a, int b) {
for (int i = 0; i < ; i++) {
if (a[i] % 2 == 1) {
("*");
} else {
(" ");
}
a[i] = a[i] + b;
}
(" ");
}
public static void main(String[] args) {
int[] arr = {-3, -2, -1, 0, 1, 0, -1, -2, -3};
for (int i = 0; i < 5; i++) {
star(arr, 1);
}
int[] arr1 = {0, 1, 2, 3, 4, 3, 2, 1, 0};
for (int i = 0; i < 4; i++) {
star(arr1, -1);
}
}
}