只用兩個for回圈列印出菱形圖案

代碼如下:
public static void main(String[] args) {
int gs=-1; //初始化每行要列印的字符個數 在回圈開始每次加2,這里賦值-1
int lines=17; //設定菱形的高度(列印圖形的行數以及列數),設定的數值應為奇數
for(int i=1;i<=lines;i++) { //以行為單位做回圈
gs=gs+((i<=(lines/2+1))?2:-2); //計算此(i)行需要列印的字符數量
//如果當前行小于等于菱形高度(行數或列數)的一半+1,那么需要列印字符的數量+2
//如果當前行大于菱形高度的一半+1,那么列印字符的數量-2
//達到最大列印字符長度之前做+2運算,之后做-2運算
for(int j=1;j<=lines;j++) { //以列為單位回圈
if (j>(lines-gs)/2 && j<((lines-gs)/2+gs+1)) { //判斷該位置顯示的是字符還是空格(字符顯示的坐標范圍)
//“(lines-gs)/2”是該行要列印的字符前的最后一個空格的坐標
//“(lines-gs)/2+gs+1”是該行要列印的字符后面的第一個空格的坐標值
System.out.print("O"); //顯示字符O
}else {
System.out.print(" ");//如果不是字符顯示的坐標則顯示空格
}
}
System.out.println();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270354.html
標籤:Java SE
上一篇:java websocket 關于長文本以及檔案傳輸
下一篇:有誰用過pi資料庫嗎
