2015-06-09 6 views
5

Ich versuche, einen Weihnachtsbaum mit for-Schleifen und verschachtelten für Schleifen zu machen. Damit ich das machen kann, muss ich in der Lage sein, Pyramiden mit * zu machen. Ich habe unzählige Male versucht und ich habe Probleme damit. Hier ist mein Code:Erstellen eines Weihnachtsbaumes mit for-Schleifen

for(int i=1;i<=10;i++){ 
    for(int j=10;j>i;j--){ 
     System.out.println(" "); 
    } 

    for(int k=1;k<=i;k++){ 
     System.out.print("*"); 
    } 

    for(int l=10;l<=1;l++){ 
     for(int h=1;h<=10;h++){ 
      System.out.print(" "); 
     } 
    } 

    System.out.println(); 
} 

Was ich versuche zu tun:

 * 
    *** 
    ***** 
    ******* 
+1

schreiben die Logik heraus auf einem Stück Papier. –

Antwort

6

Versuchen Sie, diese viel einfacher Code:

public class ChristmasTree { 

public static void main(String[] args) { 

    for (int i = 0; i < 10; i++) { 
    for (int j = 0; j < 10 - i; j++) 
    System.out.print(" "); 
    for (int k = 0; k < (2 * i + 1); k++) 
    System.out.print("*"); 
    System.out.println(); 
    } 
} 
} 

Es verwendet 3 Schlaufen:

  • erste für die Anzahl der Zeilen,
  • zweite zum Drucken der Leerzeichen,
  • dritte zum Drucken der Sternchen.
+0

Danke, es hat funktioniert. Könnten Sie erklären, warum Sie 2 * i + 1 –

+0

Erste Iteration ((2 * 0) +1) = 1 Stern. Zweite Iteration ((2 * 1) +1) = 3 Sterne. Dritte Iteration ((2 * 2) +1) = 5 Sterne und so weiter. – mcw

+0

Siehe für die erste Reihe gibt es 1 Stern. Für den 2. gibt es 3, für den 3. gibt es 5. So folgt es der allgemeinen Regel von 2 * (n-1) +1. Wie unser i startet von 0 so (n-1) = i. Also die Anzahl der Sterne in der (i + 1) ten Reihe = 2 * i + 1. –

7

Sie können es mit einer einfachen Logik

for (int i = 0; i < 4; i++) 
      System.out.println(" *******".substring(i, 4 + 2*i)); 
0
public class Stars { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     Scanner s=new Scanner(System.in); 
     System.out.println("Enter Row/Column Value::"); 
     int i,j,k,n; 
     n=s.nextInt(); 
     for(i=1; i<n; i++){ 
      for(j=n+(n/2); j>i; j--){ 
       System.out.print(" ");} 
      for(k=1; k<=2*i-1; k++){ 
       System.out.print("*");} 
      System.out.println(""); 
      } 
     for(i=1; i<n+(n/2); i++){ 
      for(j=n+(n/2); j>i; j--){ 
       System.out.print(" ");} 
      for(k=1; k<=2*i-1; k++){ 
       System.out.print("*");} 
      System.out.println(""); 
     } 
      for(i=1; i<n-(n/2); i++){ 
      for(j=n+(n/2); j>1; j--){ 
       System.out.print(" ");} 
      for(k=n/2; k<=(n/2)+1; k++){ 
       System.out.print("*");} 
      System.out.println(""); 
     } 
    } 
} 
+0

über Programm print Weihnachtsbaum. –

+3

Während dieser Code die Frage beantworten kann, würde das Bereitstellen eines zusätzlichen Kontextes hinsichtlich dessen, wie und/oder warum er das Problem löst, den langfristigen Wert der Antwort verbessern. –

-1
import java.util.Scanner; 

public class cmastree{ 

    public static void main (String[]args){ 
     Scanner keyboard=new Scanner (System.in); 

     int j; 
     System.out.println ("Enter a number"); 
     j=keyboard.nextInt(); 
     /*take the above part out and change the j variable if you want to set 
     the size*/ 
     for(int i=1; i<=j; i+=2){ 
      int numSpaces = (j-i)/2; 
     for (int k=0; k<numSpaces; k++){ 
      System.out.print(" "); 
      } 
     for(int k=0; k<numSpaces; k++){ 
      System.out.print("*"); 
      } 
      System.out.println(); 
     } 
    } 
}