java用迴圈畫三角形思路
阿新 • • 發佈:2020-12-05
對於一個問題,要學者換個角度,看問題的本質;
我們要在一張白紙上面畫一個東西,本質是一個多少行多少列的任務;
那麼一個外出for可以控制行,內部迴圈可以控制列的任務數;
注:每次列印一個字元就是一次任務,包括空格;
有了思路:乘法口訣,等邊三角,畫‘回’字都不在話下;
擴充套件:試著在一個迴圈裡面用if來取代迴圈,讓3個迴圈變成兩個;然後試著讓兩個迴圈變成一個;
package basis.week01; public class Test03 { // 畫直角三角形 public static void main(String[] args) { // 1、原始思路,畫一個長方形(正方形也是一種特殊的長方形) // //外迴圈控制行 // for(int i=1;i<=9;i++) { // for(int j=1;j<=9;j++) { // //內迴圈控制每列做多少次事情 // //每次做9次固定 // System.out.print("*"); // } // //外迴圈負責一行所有事情做完之後剩下的事情,比如換行 // System.out.println(); // } // // 2、思路進一步 // // 外迴圈控制行 // for (int i = 1; i <= 9; i++) { // // 內迴圈要做兩種事情了,一種畫*,一種話+,但是一行一共完成9次就好了 // for (int j = 1; j <= 8; j++) { // // 內迴圈控制每列做多少次事情 // // 每次做8次固定 // System.out.print("*"); // } // for (int x = 1; x <= 1; x++) { // // 內迴圈控制每列做多少次事情 // // 上面完成了8次*,還剩一次任務沒有完成 // System.out.print("+"); // } // // 外迴圈負責一行所有事情做完之後剩下的事情,比如換行 // System.out.println(); // } // // 3、思路進二步,裡面一共就幹了9次活,那麼只要總和滿足9次就好了,我們就可以聯動了 // //*號越來越多,直角在左下方 // for (int i = 1; i <= 9; i++) { // for (int j = 1; j <= i; j++) { // System.out.print("*"); // } // for (int x = 1; x <= 9-i; x++) { // System.out.print(" "); // } // System.out.println(); // } // //*號越來越少,直角在左上方 // for (int i = 1; i <= 9; i++) { // for (int j = 1; j <= 10-i/*此時i起始就是1了,9-1就是8了,少了一次,稍微處理一下就可以了*/; j++) { // System.out.print("*"); // } // for (int x = 1; x < i; x++) { // System.out.print(" "); // } // System.out.println(); // } // //*號越來越少,直角在右上方 // //那麼這種就是空格越來越多,而且空格的任務要先做 // for (int i = 1; i <= 9; i++) { // for (int x = 1; x <= i-1; x++) { // System.out.print(" "); // } // for (int j = 1; j <= 10-i/*此時i起始就是1了,9-1就是8了,少了一次,稍微處理一下就可以了*/; j++) { // System.out.print("*"); // } // System.out.println(); // } //*號越來越多,直角在右下方 //那麼這種就是空格越來越少,而且空格的任務要先做 for (int i = 1; i <= 9; i++) { for (int x = 1; x <= 9-i; x++) { System.out.print(" "); } for (int j = 1; j <= i/*此時i起始就是1了,9-1就是8了,少了一次,稍微處理一下就可以了*/; j++) { System.out.print("*"); } System.out.println(); } } }