# Rechteck Zeichnen



## paco89 (2. Dez 2011)

hi, habe versucht ein Rechteck auf meiner konsole ausgeben zu lassen. hier mein code dazu:


```
public class RechteckZeichnen
{       

        static  final int  BREITE = 20;
        static  final int  HOEHE = 10;
    
    public static void main (String [] args)
    {
        
        
        int breite;
        int hoehe;
        
        for (breite = 0; breite <= BREITE ; breite++)
        {
          System.out.print("*");
        }
         for (hoehe = 0; hoehe < HOEHE ; hoehe++)
          {
              System.out.println("*");
            
              for(breite = 0; breite <= BREITE; breite++)
            {
              
              System.out.print("*");
              
            }
          
          }
        
        
    }
}
```

der code funktioniert. allerdings gibt es am ende in der letzten zeile und letzten spalte unten einen stern weniger aus. also ein stern fehlt. woran kann das liegen? 



edit: hab erst vor kurzem angefangen zu programmieren...sprich: das sind so gesehen meine ersten versuche....


----------



## eRaaaa (3. Dez 2011)

paco89 hat gesagt.:


> deallerdings gibt es am ende in der letzten zeile und letzten spalte unten einen stern weniger aus. also ein stern fehlt.




Sicher dass das dein einziges Problem ist, bzw das überhaupt korrekt ist was du schreibst? Zähle doch mal deine Sterne in der Breite und Höhe nach 
Das passt vorne und hinten nicht, da sind eher zu viele als zu wenig 
Es reichen. eig auch zwei Schleife für den Anfang :bae:


----------



## Pipi15 (16. Dez 2011)

Hallo!
Habe folgendes Problem:
Habe den Viereck gezeichnet, muss aber an den Enden von jeder Zeile "--" anhängen. Habe kein Plan, wie das gehen soll... Vielleicht kann mir ja jemand helfen... Die Code sieht so aus:

```
class Rechteck {
	final static int length = 12;
	final static int width = 4;
	@SuppressWarnings("unused")
	private static void printRechteck (){
		
	
	for (int counter1 = 1; counter1 <= width; counter1++){
	
	for (int counter2 = 1; counter2 <= length; counter2++){
		System.out.print("#");
	}
	System.out.println ();
	}

	
	}

public static void main (String [] args)
{
    
   Carpet.printCarpet ();
}
}
```

Danke im Voraus!


----------



## SlaterB (16. Dez 2011)

du gibst schon manches aus mit System.out.print() und Co., und hast nun keine Ahnung, wie du einfach NOCH MEHR ausgeben könntest?


----------



## Pipi15 (16. Dez 2011)

Wenn ich es so mache:

```
System.out.print ("--" + "#" + "--")
```
spuckt er mir:

```
--#--#--#--#--
```
aus.
Ich will es aber nur am Enden haben:

```
--####--
```


----------



## SlaterB (16. Dez 2011)

na das ist zumindest ein Versuch, der einem einen Weg zeigt der nicht geht, ein Anfang, (*)
ein bisschen wäre es schon nützlich zu verstehen was der bisherige Code mache, eher nicht von dir..?

es gibt da eine innere Schleife zum Zusammenbau der ganzen # in einer Zeile,
das bedeutet, dass es auch Code DAVOR und DANACH geben kann, 
gib also vor und nach der Schleife etwas aus und schaue was dann passiert..

(*) ein Versuch ist gut, hunderte Versuche sind besser, wenn was nicht klappt ruhig überlegen ob sonst noch was irgendwie ähnlich denkbar ist,
nicht nur das Forum fragen..


----------



## Pipi15 (16. Dez 2011)

:idea:
Danke!


----------



## Pipi15 (16. Dez 2011)

Und wie kann ich es machen, wenn ich bei einer geraden Anzahl von Breite, jedes mal "--" haben will, und bei ungerade nur jeweils in den ungeraden:
--####--
--####--
--####--
--####--
und bei ungeraden:
--####--
   ####
--####--
ich dachte da an width%2 == 0
komme aber nicht viel weiter und du kannst es so toll erklären ;-)


----------



## SlaterB (16. Dez 2011)

width ist fest, einen der counter abfragen


----------



## Pipi15 (16. Dez 2011)

for (int counter1 = 1; counter1 <= width; counter1 += 2){
		System.out.print("--");

	for (int counter2 = 1; counter2 <= length; counter2++){
		System.out.print("#");
	}
	System.out.print("--");
	System.out.println ();
	}
spuckt mir nur:
--####--
--####--
ohne der mittleren reihe ohne "--"
es muss aber so sein, wenn ich width=3 setze:
--####--
####
--####--
???:L


----------



## Pipi15 (17. Dez 2011)

Hey! Ich habe die Code jetzt so umgeschrieben. Gefäält mir aber noch nicht ganz :-( Könnt ihr mir  mit dem Feinschliff helfen? 
class Erchteck {
	final static int length = 7;
	final static int width =12;
	private static void printRechteck (){
		int counter1 = 0;
		int max = length;
		int min = width;
		if (width > max){
		max = width;	
		min = length;}
		if (min%2 == 0)
	for (counter1 = 1; counter1 <= min; counter1++){
		System.out.print("--");	
	for (int counter2 = 1; counter2 <= max; counter2++){
		System.out.print("#");
	}
	System.out.print("--\n");
	}
		else
			for (counter1 = 1; counter1 <= min; counter1++){
				if (counter1%2 != 0)
				System.out.print("--");	
				if (counter1%2 == 0)
					System.out.print("  ");
			for (int counter2 = 1; counter2 <= max; counter2++){
				System.out.print("#");
			}
			if (counter1%2 != 0)
			System.out.print("--\n");
			if (counter1%2 == 0)
				System.out.print("  \n");}
	}		

public static void main (String [] args){    
   Carpet.printRechteck ();
}
}

Man soll hier Rechteck ausgeben mit "--" am Enden, woben wenn width gerade ist, müssen sie überall sein:
--####-- 
--####--
Und bei width ungerade nur jeweils jede ungerade:
--####--
  ####
--####--
Die längere seite soll immer horizontal verlaufen. Es funktionniert zwar so, aber wie kann man es schöner machen?
Danke im voraus


----------



## SlaterB (18. Dez 2011)

ohne Java-Tags kann man es kaum lesen, und dass hier sonst niemand antwortet kann zum nicht unerheblichen Teil daran liegen dass du kein eigenes Thema eröffnest,

wie ist das denn jetzt mit gerade/ ungerade oder geht es nicht eher um erste/ letzte Zeile?
mit if auf counter sollte doch einiges möglich sein


----------

