# Raute - for-Schleife



## Sophie (23. Mai 2010)

Guten Abend zusammen

Ich möchte folgende Ausgabe bekommen: (ohne Punkte, wird hier mit Leerzeichen nicht dargestellt)
....  *    
....***   
...*****  
.******* 
*********
.*******
...*****
....***
......*

Leider bekomme ich aber das hier: (auch wieder ohne Punkte)
....  *    
....***   
...*****  
.******* 
*********
............*  
...........*   
.........*    
.......*     
.....* 

Kann mir bitte jemand erklären, wie das richtig funktioniert?
Mein Quelltext sieht so aus:


```
public class Raute
{
    public static void main(String[] args)
    {
        int hoehe=6;
        
        for(int zeile=0; zeile<hoehe; zeile++)
        {
            for(int spalte=0; spalte<(hoehe*2-1); spalte++)
            {
                if(spalte>=(hoehe-zeile-1) && spalte<=(hoehe+zeile-1))
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.println();
        }
                     
            
            for(int zeile=0; zeile<hoehe; zeile++)
            {
            	for(int spalte=0; spalte<(hoehe*2-1); spalte++)
            	{
            		if(spalte>=(hoehe-zeile+1) && spalte<=(hoehe-zeile+1))
                        System.out.print("*");	
                    else
                        System.out.print(" ");
                }
                System.out.println();
            	}
            }
    }
```

Dankeschön!
Sophie


----------



## Landei (23. Mai 2010)

Keine Ahnung, wie das richtig geht, ich würde es so machen:

```
public static void raute(int mitte) {
        for(int y = 1; y < 2*mitte; y++) {
            for(int x = 1; x < 2*mitte; x++) {
                System.out.print(Math.abs(x-mitte) + 
                     Math.abs(y-mitte) >= mitte ? ' ' : '*');
            }
            System.out.println();
        }
    }
```


----------



## Sophie (27. Mai 2010)

Hallo

Vielen Dank für Deine Antwort. Leider verstehe ich Deinen Quellcode nicht, sind einige Sachen enthalten, die ich noch nicht kennengelernt habe.

Ich habe das Ganze jetzt aber so gelöst:


```
public class Raute
{
    public static void main(String[] args)
    {
        int i=20;
        
        for(int z=0; z<i; z++)
        {
            for(int k=0; k<(i*2); k++)
            {
                if(k>=(i-z-1) && k<=(i+z-1))
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.println();
        }
                     
		// zweite Hälfte
		for (int z=19; z>0; z--)
		{
			for(int k=0; k<(i*2); k++)
            {
                if(k>(i-z-1) && k<(i+z-1))
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
            System.out.println();	
		}
    }	}
```


----------

