打印空心菱形(Java)

很多學習一個編程語言的初學者,在學到循環結構的應用這一部分的時候,入門題大多都會碰到關於打印菱形的題。這確實是一個很好的入門題,作爲學習編程一年多的人了,在碰到這種題也難免要提筆算一算。打印菱形時,關於每行空格的個數和星星的位置,值得在紙上畫一畫,找出空格個數與行數的等量關係式,是for循環確定循環變量範圍與步長的關鍵。

功能:輸入菱形的高hight (其中hight爲奇數),打印高爲hight的菱形。如果輸入hight爲偶數,則結束程序

話不多說
沒有解析和圖解,因爲最近較忙,以後再添上

public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int hight = sc.nextInt();
		//如果高度爲偶數,畫不出完美的菱形,直接return結束程序
		if (hight % 2 == 0) return;
		//開始畫  第一行
		for (int j = 0; j < (hight-1)/2; j ++) {
			System.out.print(" ");
		}
		System.out.println("*");
		//畫第二行開始的圖形
		for (int i = 1; i < (hight+1)/2; i++) {
			//第一個星星
			//首先打印空格
			for (int j = 0; j < (hight-2*i-1)/2; j ++) {
				System.out.print(" ");
			}
			System.out.print("*");
			//第二個星星
			for (int j = 0; j < 2*i-1; j ++) {
				System.out.print(" ");
			}
			System.out.println("*");
		}
		//畫菱形的下半部分
		for (int i = 0; i < (hight-1)/2-1; i++) {
			for (int j = 0; j < i+1; j++) {
				System.out.print(" ");
			}
			System.out.print("*");
			for (int j = 0; j < hight-2*(i+2); j++) {
				System.out.print(" ");
			}
			System.out.println("*");
		}
		//最後一行
		for (int j = 0; j < (hight-1)/2; j ++) {
			System.out.print(" ");
		}
		System.out.println("*");
	}

測試:輸入11
結果:
在這裏插入圖片描述
效果還是比較完美的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章