小白的成长:通过对菱形的输出,如何输出一个空心菱形(数字或者*)?

173 阅读1分钟

package kh88_chapter05;

import java.util.Scanner;

public class lingXing1 {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner input =new Scanner(System.in);
	System.out.println("请输入一个有效的正整数:");
	int num =input.nextInt();
	//此处得判断输出的数字是否有效,因为菱形的行数始终为奇数!
	if(num%2!=0) {
		for (int i=1;i<=(num+1)/2;i++) {
			for(int j=1;j<=(num+1)/2-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=2*i-1;j++) {
			//在此就要判断空心菱形边缘*或者数字的位置
				if(j==1 ||j==2*i-1) {
					System.out.print("*");
				}else {
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	
		for (int i = 1; i <= (num - 1) / 2; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(" ");
	        }
	        for (int j = 1; j <= 2 * ((num + 1) / 2 - i) - 1; j++) {
	        	if(j==1||j==2 * ((num + 1) / 2 - i) - 1){
	        		System.out.print("*");
	            }else{
	                System.out.print(" ");
		        }
	        }
	        System.out.println(" ");
		}
	}else {
		System.out.println("对不起,你输入的数字无效!");
	}
}

}