Java 寫三角形 空心三角形 菱形 空心菱形,java菱形
閑來無事,練習了一下Java基礎中的迴圈語句。練習迴圈語句,當然少不了,用*列印出來三角形、空心三角形、菱形等這樣的幾何圖形。
粗心大意,失誤兩次:
一、三角形
遇到一些小問題:
二、金字塔
由於三角形和金字塔的代碼差不多,只有少部分更改,圖也可以看的很清楚。所以下面唯寫一部分代碼好啦。
代碼執行個體:
//作者:我//功能:鏤空金字塔//時間:2018年1月10日public class Hello{ public static void main(String args[]){ //死去活來法 //int lay=4; int lay=7; for (int i=1;i<=lay;i++ ) { //找出空格規律 //1->3 2->2 3->1 4->0 for(int k=1;k<=lay-i;k++) { System.out.print(" "); } //列印* /*不正確的 for(int j=1;j<=i;j++){ System.out.print("*"); }*/ //列印*的規律 //1->1 2->3 3->5 .... for(int j=1;j<=i*2-1;j++){ if(i==1||i==lay){ //i代表層 System.out.print("*"); }else{ //如果是第一個* if(j==1||j==i*2-1){ System.out.print("*"); }else{ System.out.print(" "); } } } //列印換行 System.out.println(); } }}
三、菱形
菱形的代碼是我在網上找的,看懂了邏輯。自己也玩了一下了,在hangshu取值為雙數時,實心菱形一點bug。
代碼執行個體:
//網上尋找的代碼public class Hello3{ public static void main(String args[]){ int hangshu = 20; int yiban = hangshu / 2 + 1; int yibanduo = hangshu / 2; System.out.println("實心菱形:"); for(int i = 1;i <= hangshu;i++){ if(i <= hangshu/2 + 1){ for(int k = 1;k <= hangshu/2 + 1- i;k++){ System.out.print(" "); } for(int k = 1;k <= i;k++){ System.out.print("* "); } System.out.println(); }else{ for(int k =1;k <= (i -(hangshu/2 + 1));k++){ System.out.print(" "); } for(int k = 1;k <= (2 *(hangshu/2 + 1) - i);k++){ System.out.print("* "); } System.out.println(); } } System.out.println("空心菱形:"); for(int k = 1;k <= yiban;k++){ for(int i = 1;i <= (yiban - k);i++){ System.out.print(" "); } System.out.print("*"); for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){ System.out.print(" "); } if(k != 1){ System.out.print("*"); } System.out.println(); } for(int k = yibanduo;k >=1;k--){ for(int i = 1;i <= (yiban - k);i++){ System.out.print(" "); } System.out.print("*"); for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){ System.out.print(" "); } if(k != 1){ System.out.print("*"); } System.out.println(); } }}