Rechteck zeichnen

SmittyJoe

Mitglied
Servus,

habe zur Übung die Aufgabe aus einem Javabuch genommen, komme aber bei einem kleinem Punkt nicht weiter.
Aufgabe ist einfach die do-while und while-Schleifen einer Implementierung in for-Schleifen umzuändern. Bei der
Umänderung fehlt mir die rechte Seite des Rechtecks, die anderen drei Kanten bekomme ich genauso raus wie
bei der ersten Implementierung.

Implementierung(while/do-while-Version):

Java:
public class RechteckZeichnen {
	static final int HOEHE = 10;
	static final int BREITE = 20;

	public static void main(String[] args) {
		int hoehe; // Zaehlvariable für die Hoehe
		int breite; // Zaehlvariable für die Breite
		breite = 0;
		do {
			System.out.print("*");
			breite++;
		} while (breite < BREITE);
		System.out.println();

		hoehe = 0;

		while (hoehe < HOEHE - 2) {
			System.out.print("*");
			breite = 1;
			do {
				System.out.print(" ");
				breite++;
			} while (breite < BREITE - 1);
			System.out.println("*");
			hoehe++;
		}

		breite = 0;
		while (breite < BREITE) {
			System.out.print("*");
			breite++;
		}
		System.out.println();
	}
}

Mit for-Schleifen:

Java:
public class ForRechteckZeichnen {
	static final int HOEHE = 10;
	static final int BREITE = 20;

	public static void main(String[] args) {
		int hoehe; // Zaehlvariable für die Hoehe
		int breite; // Zaehlvariable für die Breite

		for (breite = 0; breite < BREITE; breite++) {
			System.out.print("*");
		}
		System.out.println();

		for (hoehe = 0; hoehe < HOEHE - 2; hoehe++) {
			for (breite = 1; breite < BREITE - 1; breite++) {
				System.out.print("");
			}

			System.out.println("*");
		}

		for (breite = 0; breite < BREITE; breite++) {

			System.out.print("*");
		}
		System.out.println();

	}
}

Bei der Erzeugung der Breite stimmt alles, doch wo platziere ich in dem Programmabschnitt die print-Anweisung mit dem Sternchen so, dass auf auf der rechten Seite die Kante erzeugt bekomme?

Java:
for (hoehe = 0; hoehe < HOEHE - 2; hoehe++) {
			for (breite = 1; breite < BREITE - 1; breite++) {
				System.out.print("");
			}

			System.out.println("*");
		}


Ausgabe:
Java:
********************
*
*
*
*
*
*
*
*
********************
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Ich stehe grade codetechnisch auf einem Schlauch und verstehe deshalb deinen Code nicht, was aber an mir liegt ;)

Der Ablauf ist in Pseudocode so:

Java:
//obere Seite
for (von 0 bis BREITE){
  sysout("*");
}

for (von 1 bis HÖHE - 1){
  sysout("*");//linke Seite
  
  for (von 1 bis BREITE - 1){
    sysout(" ");//freier Bereich in der Mitte
  }
  
  sysou("*");//rechte Seite
}

//untere Seite
for (von 0 bis BREITE){
  sysout("*");
}
 
Zuletzt bearbeitet:

xyss

Aktives Mitglied
Du hast in diesem Teil:
Java:
for (hoehe = 0; hoehe < HOEHE - 2; hoehe++) {
	for (breite = 1; breite < BREITE - 1; breite++) {
		System.out.print("");
	}
 
System.out.println("*");
}

2 Fehler. Einerseits machst du System.out.println(""); statt System.out.println(" "); ,gibs also im Endeffekt gar nichts aus. Und ansonsten.. mach es doch so wie in deiner While Schleife auch. Einmal einen "*" ausgeben (linke Seite), dann in einer Schleife die Leerzeichen ranfügen, und danach wieder ein "*". Ich verstehe nicht, wieso du hier nun auf einmal nur ein "*" anfügst, und dich wunderst, dass dir dann eine Kante fehlt. :p

Hier eine funktionierende Version (einfach austauschen):
Java:
for (hoehe = 0; hoehe < HOEHE - 2; hoehe++) {
    	System.out.println("*");
    	for (breite = 1; breite < BREITE - 1; breite++) {
    		System.out.print(" ");
    	}
     
    	System.out.println("*");
    }



Sehr oft sind solche einfachen Probleme gleichermaßen in for- und while-Schleifen darstellbar, wie hier:

Java:
breite = 0;
do {
	System.out.print(" ");
	breite++;
} while (breite < BREITE - 1);

Du iterierst also über den Wert breite, welcher bei 0 beginnt,und solange dieser kleiner als BREITE-1 ist, und erhöhst ihn dabei immer um 1. Also wird hieraus for(breite = 0, breite < BREITE - 1, breite++){...}

lg
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
I Rechteck Zeichnen Java Basics - Anfänger-Themen 9
M Farbiges Rechteck zeichnen Java Basics - Anfänger-Themen 2
B Rechteck aus Sternen Zeichnen Java Basics - Anfänger-Themen 8
B Swing Rechteck zeichnen Java Basics - Anfänger-Themen 14
G dicke linie zeichnen bzw schräges rechteck füllen Java Basics - Anfänger-Themen 2
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
L Wie vergrößere ich ein Rechteck in alle Richtungen um eins und bekomme dessen Rand? Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
S Erste Schritte Ein Rechteck aus Sternchen mit Wiederholungsanweisung erstellen Java Basics - Anfänger-Themen 2
T Rechteck Programmieren Java Basics - Anfänger-Themen 4
F Klasse Rechteck definieren Java Basics - Anfänger-Themen 21
M Erste Schritte Gefülltes Rechteck programmieren Java Basics - Anfänger-Themen 1
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
S Ein Rechteck soll an einer Seite gespiegelt werden. Java Basics - Anfänger-Themen 5
G Methoden Nicht überlappte teile eines Rechteck's Java Basics - Anfänger-Themen 9
T Rechteck Koolision Java Basics - Anfänger-Themen 4
O Rechteck Java Basics - Anfänger-Themen 10
X Rechteck Java Basics - Anfänger-Themen 2
F Rechteck/Quadrat getroffen? Java Basics - Anfänger-Themen 2
K Rechteck/Quadrat Java Basics - Anfänger-Themen 5
P Rechteck Zufallsverschiebung mit Abprallen Java Basics - Anfänger-Themen 12
M Umfang von Rechteck oder Kreis anhand der Parameter Java Basics - Anfänger-Themen 2
J Rechteck Java Basics - Anfänger-Themen 8
G Rechteck zeichen Java Basics - Anfänger-Themen 4
J itext - Rechteck in PdfCell Java Basics - Anfänger-Themen 2
E klasse für ein Rechteck schreiben Java Basics - Anfänger-Themen 25
K Rechteck mit einem Loch in dem Mitte Java Basics - Anfänger-Themen 11
H Rechteck ziehen bei einer Application Java Basics - Anfänger-Themen 2
Dilandau rechteck des applet inhalts als gif-datei speichern? Java Basics - Anfänger-Themen 2
R mit MouseDragged Rechteck verschieben. Java Basics - Anfänger-Themen 2
G Linie innerhalb Rechteck Java Basics - Anfänger-Themen 2
W Problem mit einem Programm Rechteck Fläche, Umfang Java Basics - Anfänger-Themen 6
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
K 3D Fläche Zeichnen Java Basics - Anfänger-Themen 2
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
R Iterativ zeichnen Java Basics - Anfänger-Themen 1
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
V Speicherzustand zeichnen Java Basics - Anfänger-Themen 0
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
Mosquera f(x)=x² zeichnen Java Basics - Anfänger-Themen 5
J Graphen in Java zeichnen Java Basics - Anfänger-Themen 11
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
S Zeichnen mit Wiederholungen Java Basics - Anfänger-Themen 12
B Wie kann ich Linien rekursiv zeichnen? Java Basics - Anfänger-Themen 4
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
snipesss Linie zeichnen ohne extra Klasse? Java Basics - Anfänger-Themen 3
C Umrisse von Bilddateien mithilfe Polygonen zeichnen Java Basics - Anfänger-Themen 5
G Aus einem Code ein Sequenzdiagramm zeichnen? Java Basics - Anfänger-Themen 1
K Rechtecke rekursiv zeichnen Java Basics - Anfänger-Themen 20
V Quadrate rekursiv zeichnen Java Basics - Anfänger-Themen 7
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
C Schleifenaufgabe - Molekül zeichnen Java Basics - Anfänger-Themen 6
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
H Linie zeichnen... Java Basics - Anfänger-Themen 16
N Treppe zeichnen Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
M in Java zeichnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S Wo beginnt ein Draw String zu zeichnen. Java Basics - Anfänger-Themen 4
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
A Histogramm zeichnen Java Basics - Anfänger-Themen 2
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
D Haus zeichnen Java Basics - Anfänger-Themen 4
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
S Problem mit "Zeichnen auf Kommando" Java Basics - Anfänger-Themen 2
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
F Line zeichnen und Werte ändern Java Basics - Anfänger-Themen 6
B Grafik zeichnen Java Basics - Anfänger-Themen 25
B Erste Schritte Weihnachtsbaum zeichnen Java Basics - Anfänger-Themen 6
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben