2012-06-07 56 views
0

我想繪製一個三角形與下面的星星使用循環,但我真的不知道如何做到這一點?三角形將會是這樣的:如何在java中使用for循環打印帶「*」的三角形?

* 
** 
*** 
**** 
***** 
****** 
******* 
******** 
********* 
********** 

等等。任何人都可以幫我嗎?

public class Project1 { 
    public static void main (String[] args){ 
     int c, d, e; 
     for (c = 1 ; c <= 8 ; c++){ 
      for (d = 1 ; d <= c ; d++){ 
       System.out.print ("*"); 
      } 
      System.out.println(""); 
     } 

     for (e = 1 ; e <= 4 ; e++){ 
      System.out.println ("***"); 
     } 
    } 
} 

這是我從網上找到的,但我不明白爲什麼它使用兩個循環。使用嵌套循環(我理解用於構造乾的人。)

+2

你應該張貼尋求幫助之前,你最好/最新嘗試。 – dasblinkenlight

+0

@Berk Elmas提示:它需要2個循環。但爲什麼它需要兩個循環,弄清楚。 – Mahesh

+0

這真的不是我的功課。我現在是一名高中生,我想要的只是自己學習java。相信我 ! –

回答

4
public static void main(String[] args) 
{ 

    StringBuilder stars = new StringBuilder(); 

    for(int i = 0; i <= 10; i++) 
    { 
      stars.append("*"); 
      System.out.println(stars); 
    } 

} 

或者:(這是什麼,這次演習是真的試圖讓你做)

public static void main(String[] args) 
{ 
    for(int i = 0; i <= 10; i++) 
    { 
     for(int j=0; j<=i; j++) 
     { 
      System.out.print("*"); 
     } 
     System.out.print("\n"); 
    } 
} 
+2

+1使用字符串連接的巧妙方式。我從來沒有想過它:( – Mahesh

+2

@Mahesh其實,並不那麼聰明,像這樣的連接可以更好地被一個stringbuilder使用, –

2

你將需要兩個for循環;一個用於打印該行,另一個用於在一行中打印字符。當前行的編號可用於打印一定數量的恆星。

使用System.out.print("*")打印而無需添加新的生產線,在第二循環的結束做System.out.println()

我將離開環路作爲練習的實施,這裏是語法:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

+0

更好的實現。 – Kevin

+2

Alex W的實現可能更有效率,但是因爲這是相當的一個基本的問題,我認爲提問者可以從學習如何使用嵌套循環中受益 – Joost

1

只需在您的網絡發現的代碼註釋...

  1. for迴路應始終從0開始,除非你有特殊原因,從啓動10。從0開始練習是一個很好的習慣,因爲它可以幫助您使用java arrays
  2. 的2個for環內彼此...外循環只是控制多少行中有三角形(8在這種情況下)。內部循環正在寫入該行的星號。這不是實現結果的最佳方式,但它會正常工作。
  3. 底部的for循環寫出的星星看起來像一棵樹的樹幹。

希望這有助於你的理解。

0

這可以給你解決你的問題。

class Seven 
{ 
public static void main(String arg[]) 
{ 
for(int i=0;i<=8;i++) 
{ 
for(int j=8;j>=i;j--) 
{ 
System.out.print(" "); 
} 
for(int k=1;k<=(2*i+1);k++) 
{ 
System.out.print("*"); 
} 
System.out.println("\n"); 
} 
} 
} 
0
import java.util.Scanner; 
public class apple{ 
public static void main(String[] args){ 

int c,r; 
for(c=1; c<=10; c++){ 
for(r=1; r<=c; r++){ 
System.out.print("*"); 
} 
System.out.println(); 
} 
} 
0
public class StarA { 

public static void main(String[] args) { 

    for(int i = 1; i <= 5; i++) 
    { 
     for(int j = 0; j < i; j++) 
     { 
      System.out.print("*"); 

     } 
     System.out.println(); 
    } 

    } 
} 
+0

您可以詳細解釋一下您的答案嗎? – Qix

0
  import java.util.*; 

      class StarForloop 
{ 
      public static void main(String arg[]) 
    { 
      Scanner ob=new Scanner(System.in); //getting input 
      System.out.println("Enter any NO"); 

      int count=ob.nextInt(); 
     String ab="*"; // initialize string variable 

      for(int i=1; i<=count; i++) 
     { 

      ab=ab+"*"; // here you add one another string 
      System.out.println(ab); 


     }   
    } 
} 
+0

僅僅回答代碼的答案並不鼓勵,因爲他們不會爲將來的讀者提供很多信息,請提供一些解釋給你有什麼書面 – WhatsThePoint