「Java」「For迴圈」 三角形

for迴圈的三角形範例。

public class Triangle {
	public static void main(String[] args) {
		int i;
		int j;
		int k;
		Scanner user = new Scanner(System.in);
		System.out.println("請輸入需要幾層的三角形:");
		int no = user.nextInt();
		//--------------------------------------
		System.out.println("直角三角形(左上)");
		for(i=1;i<=no;i++) { //i=1,i最大等於no,就會出現幾"行"
			for(j=i;j<=no;j++) {//指定i給j,j最大等於no,第一行:3列。第二行:2列。第三行:1列
				System.out.print("*");
			}
			System.out.println();//每一行結束即換行
		}


Printout:
直角三角形(左上)
*****
****
***
**
*
System.out.println("直角三角形(左上)2");
   for(i=1 ; i<=no ; i++){
       for(j=1 ; j<=no ; j++ )
             if(i<=j) //if迴圈裡i<=j直角在左上,i>=j直角在左下
                    System.out.print("*");
                System.out.println();
        }


Printout:
直角三角形(左上)2
*****
****
***
**
*
                System.out.println("直角三角形(右上)");
		for(i=1;i<=no;i++) {//i=1,i最大等於no,就會出現幾"行"
			for(j=1;j<i;j++) {//j=1,j不可以比i大。第一行:0列,第二行:1列,第三行:2列
				System.out.print(" ");
			}for(k=j;k<=no;k++) {//指定j給k,k最大等於no。j=1時:3列,j=2時:2列,j=3時:1列
				System.out.print("*");
			}System.out.println();//每一行結束即換行
		}System.out.println();

Printout:
直角三角形(右上)
*****
 ****
  ***
   **
    *

	System.out.println("直角三角形(右上)2");
        for(i=1;i<=no;i++)//層數的for迴圈
        {
            for(j=1;j<=i;j++)//根據外層行號,輸出星號左邊空格
                System.out.print(" ");
            for(k=1;k<=no-i+1;k++)//根據外層行號,輸出星號個數
                System.out.print("*");
            System.out.println();
        }

Printout:
直角三角形(右上)2
 *****
  ****
   ***
    **
     *

		System.out.println("直角三角形(左下)");
		for(i=1;i<=no;i++) {//i=1,i最大等於no,就會出現幾"行"
			for(j=1;j<=i;j++) {//j=1,i每一行,j就出現幾次。
				System.out.print("*");
			}
			System.out.println();//每一行結束即換行
		}

Printout:
直角三角形(左下)
*
**
***
****
*****

	System.out.println("直角三角形(左下)2");
        for(i=1 ; i<=no ; i++){
            for(j=1 ; j<=no ; j++ )
             if(i>=j) //if迴圈裡a<=b直角在左上,a>=b直角在左下
                    System.out.print("*");
                System.out.println();
        }

Printout:
直角三角形(左下)2
*
**
***
****
*****

		System.out.println("直角三角形(右下)");
		for(i=1;i<=no;i++) {//i=1,i最大等於no,就會出現幾"行"
			for(j=i;j<no;j++) {//指定i給j,j最大不能超過no,第一行:2列,第二行:1列,第一行:0列
				System.out.print(" ");
			}for(k=1;k<=i;k++) {//k=1,k最大等於i,有幾行就出現幾列。第一行:1列,第二行:2列,第三行:3列。
				System.out.print("*");
			}System.out.println();//每一行結束即換行
		}System.out.println();

Printout:
直角三角形(右下)
    *
   **
  ***
 ****
*****
	
System.out.println("正三角形");
for(i=1;i<=no;i++) {//i=1,i最大等於no,就會出現幾"行"
	for(j=i;j<no;j++) {//指定i給j,j最大不能超過no,第一行:2列,第二行:1列,第一行:0列
		System.out.print(" ");
	}for(k=1;k<(i*2);k++) {//k=1,k不能大於 (i*2),只能出現基數 1,3,5,7
		System.out.print("*");
	}System.out.println();//每一行結束即換行
}System.out.println();

Printout:
正三角形
    *
   ***
  *****
 *******
*********
	
		System.out.println("正三角形2");
	        for(i=1;i<=no;i++)//層數的for迴圈
	        {
	            for(j=1;j<=no-i;j++)//根據外層行號,輸出星號左邊空格
	                System.out.print(" ");
	            for(k=1;k<=2*i-1;k++)//根據外層行號,輸出星號個數
	                System.out.print("*");
	            System.out.println();
	        }
Printout:
正三角形2
    *
   ***
  *****
 *******
*********
	

	System.out.println("顛倒金字塔");
		for(i=1;i<=no;i++) {//i=1,i最大等於no,就會出現幾"行";i遞增
			for(j=1;j<i;j++) {//j=1,j不能大於i,第一行:0列,第二行:1列,第一行:2列
				System.out.print(" ");
			}for(k=1;k<=((no-j)*2)+1;k++) {//k=1,k最大等於((no-j)*2)+1;
				//((4-1)*2)+1=7,((4-2)*2)+1=5,((4-3)*2)+1=3,((4-4)*2)+1=1
				System.out.print("*");
			}System.out.println();//每一行結束即換行
		}System.out.println();
Printout:
顛倒金字塔
*********
 *******
  *****
   ***
    *
		System.out.println("菱形");
        for(i = 1; i <= no; i++)  //i=1,i最大等於no,no輸入多少就會出現幾"行"
        {  
            for(j = no-i; j >= 0;j--)  //j=no輸入-i;j=4-1=3,j=4-2=2,j=4-3=1;j最小等於0;j遞減。
            	//輸入的空格 第一行=3列,第二行=2列,第三行=1列,第四行=0列
                System.out.print(" ");  
            for(k = 1; k <= (i*2)-1; k++) //k=1,k最大等於(i*2)-1,(1*2)-1=1,(2*2)-1=3,(3*2)-1=7,(4*2)-1=9
            	//k<=(i*2)-1,會輸出1,3,5,7,9
                System.out.print("*");  
            System.out.println("");  //每行結束即換行
        }  
        for(i = no-1; i >= 1; i--)  //i=no-1,i最小等於1,i遞減。no輸入多少都會等於(no-1)
        {  
            for(j = no-i; j >= 0; j--)  //j=no-i;(4-3)=1,(4-2)=2,(4-1)=3;j最小等於0;j遞減
            	//第一行=1列,第二行=2列,第三行=3列
                System.out.print(" ");  
            for(k = 1; k <= 2*i-1; k++)  //k=1;k最大等於(i*2)-1;k遞增
            	//(i*2)-1,(3*2)-1=5,(2*2)-1=3,(1*2)-1=1
                System.out.print("*");  
            System.out.println("");  
        }  


Printout:
菱形
     *
    ***
   *****
  *******
 *********
  *******
   *****
    ***
     *
	
		System.out.println("編排成正方形");
		for(i=1;i<=no;i++) {
			for(j=1;j<=no;j++) {
				System.out.print(" ☐");
			}
			System.out.println();
		}
Printout:
編排成正方形
 ☐ ☐ ☐ ☐ ☐
 ☐ ☐ ☐ ☐ ☐
 ☐ ☐ ☐ ☐ ☐
 ☐ ☐ ☐ ☐ ☐
 ☐ ☐ ☐ ☐ ☐
	
		System.out.println("長方形");
		for(i=1;i<no;i++) {
			for(j=1;j<(no*2);j++) {
				System.out.print("*");
			}
			System.out.println();
		}

Printout:
長方形
*********
*********
*********
*********

留言

這個網誌中的熱門文章

[Excel]國曆轉農曆VBA

「CSS」「div區塊介紹」 三欄式網頁排版設計