用Java控制台来画菱形
首先写方法里的代码
public static void x(Scanner a1){
int a = 0;
try {
a = a1.nextInt();
} catch (Exception e) {
System.out.println("请输入数字");
Scanner b = new Scanner(System.in);
x(b);
}
for(int i = 1; i <= a; i++){
for(int y = 1; y <= a; y++){
if(y == a && y != (a + 1)/2 + (i - 1) + ((a - 1) % 2) && y != a - (i - (a + 1)/2) + (a - 1) % 2){
System.out.println(" ");
}
else if(y == (a + 1)/2 -(i - 1)){
System.out.print(" *");
}else if(y == (a + 1)/2 -(i - 1) + ((a - 1) % 2) && (i ==1 || y ==1 || y ==a)){
System.out.print(" *");
}else if(y == (a + 1)/2 + (i - 1) + ((a - 1) % 2) || (y == (a + 1)/2 + (i - 1) + ((a - 1) % 2) && (i ==1 || y ==1 || y ==a))){
if(y == a){
System.out.println(" *");
}else{
System.out.print(" *");
}
}else if(i > (a + 1)/2 && (y == i - (a + 1)/2 + a % 2|| y == a - (i - (a + 1)/2) + (a - 1) % 2)){
if(y == a){
System.out.println(" *");
}else{
System.out.print(" *");
}
}
else {
System.out.print(" ");
}
}
}
}
上述代码中的(a%2)或(a-1)%2是为了判断输入的数字是否为偶数,其与奇数情况不同。
调用方法代码
public static void main(String[] args) {
Scanner a = new Scanner(System.in);
x(a);
}
效果图
![上面的效果图是奇数情况](https://i-blog.csdnimg.cn/blog_migrate/62c7c6b57bab04c6e01dc7ac7cbb971f.png)
上面的效果图是奇数情况
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1bac35dee009d411a7297ea024b059ee.png)
上述效果图是偶数情况