Testklasse und Ausgabe

Schorni

Mitglied
Hallo,

ich soll in Java ein Geschenkpapier.java mit einem Muster programmieren und dazu muss eine Testklasse erstellt werden (GeschenkpapierTest.java). Mit Parameterübergabe. Folgendes habe ich erstellt (siehe unten). Mein Problem ist, dass Java mir die 1. Zeile perfekt ausgiebt und dann nur noch leer-Zeilen (normalerweise müssten drei Zeilen mit Sternchen ausgegeben werden). Vielleicht könnt Ihr mir bitte einen Tip geben wo mein Denkfehler ist.


Geschenkpapier.java
Java:
public class Geschenkpapier {


		public Geschenkpapier(){
                }
		

			
			public void muster1(int zeilen, int wiederholung){
			
				while (zeilen>7) 
					{ 

				      while (wiederholung>0) {
				         System.out.print("xx "); 
				           wiederholung -=1;
				  }
					 zeilen -=1;
					  System.out.println();
				}
				  
			}
}

Klasse GeschenkpapierTest.java

Java:
public class GeschenkpapierTest{

	public static void main(String[] args) {
	
		Geschenkpapier Test = new Geschenkpapier();

		Test.muster1(10, 8);
	}
}

Ausgabe ist:

** ** ** ** ** ** ** **
// es folgen zwei Leerzeilen

Vielen lieben Dank im Voraus!!!
 

Kiri

Bekanntes Mitglied
Java:
			public void muster1(int zeilen, int wiederholung){

				while (zeilen>7) 
					{ 

				      while (wiederholung>0) {
				         System.out.print("xx "); 
				           wiederholung -=1;
				  }//hier nach ist wiederholung 0 und bleibt 0
					 zeilen -=1;
					  System.out.println();
				}
siehe Kommentar
 

Kevin94

Top Contributor
Der Denkfehler ist, das du den Parameter zum runterzählen verwendest. In der ersten Zeile geschieht die Ausgabe wie gewollt, danach ist aber wiederholung 0, und in den nachfolgenden Zeilen wird nichts mehr ausgegeben.
Ich würde das ganze mit for-Schleifen umsetzen und damit dir das nicht nochmal passiert die Parameter final machen.

PS: Ich hoffe die grausame Formatierung ist nur dem Copy&Paste verschuldet und der unterschiedlichen darstellung von Tabs hier und in deiner IDE.
 

L-ectron-X

Gesperrter Benutzer
Hier sitzt noch ein Fehler:
Java:
while (zeilen>7)
So lange zeilen einen Wert größer 7 hat, wird die while-Schleife durchlaufen.
Na, klingelts? ;)

Und wiederholung wird bis auf den Wert 0 herunter dekrementiert. Du müsstest also bei der Verwendung einer while-Schleife den Wert nach jeder Zeilenausgabe wieder auf den Startwert zurücksetzen.
Deine muster1()-Methode könnte daher so aussehen:
Java:
   public void muster1(int zeilen, int wiederholung){

       int w = wiederholung;
       while (zeilen > 0) {
           while (w > 0) {
               System.out.print("xx ");
               w--;
           }
           zeilen--;
           System.out.println();
           w = wiederholung;
       }
   }
 

Schorni

Mitglied
Erstmal vielen Dank für eure schnelle Antwort. ;)

Die Erklärungen sind natürlich einleuchtend und das ich den Startwert noch mal zurücksetzen muss, darauf wär ich nicht gekommen.

Ich muss diese Schleife auch als for-Schleife erstellen und dort habe ich genau das gleiche Problem. Muss ich dort den Startwert auch wieder zurück setzen?

Methode aus Geschenkpapier.java

Java:
public void muster2(int a, int b, int c){
				
			for (;a<=5; a++) {
				 System.out.println();
				          for (; b<=9; b++) {
				           System.out.print(":-) ");
					             }
				           System.out.println();
					  
                                                for (; c<=9; c++) {
						System.out.print(")-: ");
					            }
					    }
			System.out.println();
				 }

Auszug aus GeschenkpapierTest.java (wie oben nur mit:)

Java:
Test.muster2(1,1,1);

Ausgabe hier:
[noparse]:) :) :) :) :) :) :) :) :)[/noparse]
[noparse]:-( :-( :-( :-( :-( :-( :-( :-( :-([/noparse]
es folgen wieder einige Leerzeilen

Sorry vorab für die Formatierung.
 
Zuletzt bearbeitet von einem Moderator:

TKausL

Top Contributor
Java:
public void muster2(int a, int b, int c){
                
            for (int i = 0;i<=a; i++) {
                 System.out.println();
                          for (int j = 0; i<=b; j++) {
                           System.out.print(":-) ");
                                 }
                           System.out.println();
                      
                                                for (int k = 0; k<=c; k++) {
                        System.out.print(")-: ");
                                }
                        }
            System.out.println();
                 }
 

Schorni

Mitglied
Danke TKausL, aber dort macht er mir eine Endlosschleife mit "[noparse]:)[/noparse]" ....
 
Zuletzt bearbeitet von einem Moderator:

Kiri

Bekanntes Mitglied
mach daraus
Java:
for (int j = 0; i<=b; j++) {

das
Java:
for (int j = 0; j<=b; j++) {
 

bwbg

Mitglied
Auch ist es hilfreich, größere Probleme in Teilprobleme (und damit Methoden) aufzuteilen. Viel wichtiger ist jedoch, "sprechende" Bezeichner zu verwenden. Gerade im Beispiel [c]Muster2[/c] habe ich Schwierigkeiten auf die Funktionsweise zu schließen (Bezeichner [c]a[/c], [c]b[/c] und [c]c[/c]).

Sicher wirst Du wissen, was diese bedeuten und bewirken. Aber wirst du es morgen, nächste Woche oder gar nächstes Jahr noch wissen, wenn Du Dir den Code erneut anschauen wirst? Code wird weit häufiger gelesen, als geschrieben.

Sprechende Bezeichner erleichtern hier anderen Teilnehmern, Dein Problem schnell zu erfassen.

Hier ein kleines (subjektives) Beispiel zu [c]Muster1[/c].

Java:
public class Geschenkpapier {

	public static void main(String[] args) {
		Muster1.print(10, 8);
	}
}

class Muster1 {
	
	public static void print(final int verticalRepetitions,
			final int horizontalRepetitions) {
		
		for(int n = 0; n < verticalRepetitions; ++n) {
			printLine(horizontalRepetitions);
		}
	}
	
	private static void printLine(final int horizontalRepetitions) {
		for(int n = 0; n < horizontalRepetitions; ++n) {
			System.out.print("** ");
		}
		System.out.println();
	}
}

Grüße und noch viel Erfolg ... bwbg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java Testklasse Java Basics - Anfänger-Themen 5
E Erste Schritte Testklasse Binärbaum Java Basics - Anfänger-Themen 10
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
T Testklasse interaktiv Java Basics - Anfänger-Themen 3
M In Testklasse einem Array Werte übergeben Java Basics - Anfänger-Themen 6
C Testklasse schreiben....! Java Basics - Anfänger-Themen 36
B Bubblesort-Algorithmus und Testklasse Java Basics - Anfänger-Themen 5
J Objekt-Array-Testklasse Java Basics - Anfänger-Themen 5
D Objektvariablen in Testklasse ausgeben Java Basics - Anfänger-Themen 6
W Fehler bei Ausführung von Testklasse Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben