「Java」「For迴圈」 三角形
for迴圈的三角形範例。
Printout:
直角三角形(左上)
*****
****
***
**
*
Printout:
直角三角形(左上)2
*****
****
***
**
*
Printout:
直角三角形(右上)
*****
****
***
**
*
Printout:
直角三角形(右上)2
*****
****
***
**
*
Printout:
直角三角形(左下)
*
**
***
****
*****
Printout:
直角三角形(左下)2
*
**
***
****
*****
Printout:
直角三角形(右下)
*
**
***
****
*****
Printout:
正三角形
*
***
*****
*******
*********
正三角形2
*
***
*****
*******
*********
顛倒金字塔
*********
*******
*****
***
*
Printout:
菱形
*
***
*****
*******
*********
*******
*****
***
*
編排成正方形
☐ ☐ ☐ ☐ ☐
☐ ☐ ☐ ☐ ☐
☐ ☐ ☐ ☐ ☐
☐ ☐ ☐ ☐ ☐
☐ ☐ ☐ ☐ ☐
Printout:
長方形
*********
*********
*********
*********
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:
長方形
*********
*********
*********
*********
留言
張貼留言