1. 程式人生 > 實用技巧 >java用迴圈畫三角形思路

java用迴圈畫三角形思路

對於一個問題,要學者換個角度,看問題的本質;
我們要在一張白紙上面畫一個東西,本質是一個多少行多少列的任務;
那麼一個外出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();
		}

	}
}