Stelle in Code herausfinden, wie geht man vor?

Say

Aktives Mitglied
Hallo zusammen, wie geht man bei solch einer Aufgabe vor? Sie haben alle vier Optionen gegeben:
p = p - 2;
p = p + 2;
p = p - 1;
p = p + 1;
Was ich gemacht habe, ich habe einfach alle vier Optionen durchprobiert und dann habe ich festgestellt, dass das erste korrekt ist. Aber ich kann es mir nicht erklären warum.

int m = 0;
int n = 2;
int p = 5;
boolean test = true;
do {
if (p % 2 == 0) {
System.out.print(p + " " + m + " ");
/* code fehlt */
}
else {
System.out.print(m + " " + (m + n) + " ");
++p;
}
test = ! test;
++m;
} while (test || (m < n) );

Gruss
Say
 

Neumi5694

Top Contributor
Als erstes postet man Code in Codetags (das ist der Button links oben "</>"
Zum Debuggen nutzt du eine IDE, mit der du den Code zeilenweise ausführen kannst. IntelliJ, Eclipse, Netbeans ... such dir eine aus (ich bin Netbeans Anhänger, Eclipse ist wohl am weitesten verbreitet).

Was "korrekt" ist und was nicht, weiß hier leider niemand. da niemand die Aufgabenstellung kennt.
 

Say

Aktives Mitglied
Ich habe nun IntelliJ benutzt. Also kann ich einfach den Debugg Modus einschalten und Schritt für Schritt schauen, was der Wert ist?

Bei dieser Aufgabe geht es darum, herauszufinden, welche von diesen vier der passende Wert ist.

p = p - 2;
p = p + 2;
p = p - 1;
p = p + 1;

Java:
int m = 0;
int n = 2;
int p = 5;
boolean test = true;
do {
if (p % 2 == 0) {
System.out.print(p + " " + m + " ");
/* code fehlt */
}
else {
System.out.print(m + " " + (m + n) + " ");
++p;
}
test = ! test;
++m;
} while (test || (m < n) );
 

Say

Aktives Mitglied
Ich habe nun IntelliJ benutzt. Also kann ich einfach den Debugg Modus einschalten und Schritt für Schritt schauen, was der Wert ist?

Bei dieser Aufgabe geht es darum, herauszufinden, welche von diesen vier der passende Wert ist.

p = p - 2;
p = p + 2;
p = p - 1;
p = p + 1;

Java:
int m = 0;
int n = 2;
int p = 5;
boolean test = true;
do {
if (p % 2 == 0) {
System.out.print(p + " " + m + " ");
/* code fehlt */
}
else {
System.out.print(m + " " + (m + n) + " ");
++p;
}
test = ! test;
++m;
} while (test || (m < n) );
Nun habe ich einfach alle vier Varianten ausprobiert und der erste hat gepasst. Sie haben eine Zahlenreihenfolge gegeben und anhand dieser mussten wir uns entscheiden, welche von diesen vier Antwort sein könnten.
 

Neumi5694

Top Contributor
Du kannst Zeile für Zeile durchgehen und dir die Werte der einzelnen Variablen anzeigen lassen, in Netbeans würde man dies ein "Watch" nennen.
Was davon "passend" ist, musst du schon selbst wissen.
Was auch immer hilft, ist den Code zu kommentieren
Java:
do {
int m = 0;
int n = 2;
int p = 5;
boolean test = true;
do {
  if (p % 2 == 0) {
    //p ist gerade
    System.out.print(p + " " + m + " ");
    /* code fehlt */
  } else {
    //p ist ungerade
    System.out.print(m + " " + (m + n) + " ");
    ++p;
  }
  test = ! test;
  ++m;
} while (test || (m < n) );
//Beim ersten Durchlauf hängt die Bedingung nur von m < n ab. Beim zweiten Durchlauf ist sie garantiert true. Dies wechselt sich ab.
 
Zuletzt bearbeitet:

Say

Aktives Mitglied
Ich verstehe do while nicht ganz, deswegen wird es auch schwierig zu sagen, welche am ehesten passt.
 

Neumi5694

Top Contributor
Deine Schwierigkeit scheint vor allem darin zu bestehen, zu sagen, was "passen" heißt. Was soll die Methode eigentlich machen? Was ist das gewünschte Ergebnis?

Do-While ist erschreckend simpel.
Der Inhalt in den Klammern wird mindestens einmal ausgeführt und so oft wiederholt, wie die Bedingung gilt.
Java:
do {
 machWas();
} while (bedingungErfüllt);
Im Unterschied dazu haben wir die "normale" While-Schleife.
Java:
while (bedingungErfüllt) {
 machWas();
}
Der Unterschied ist, dass die Bedingung hier vor Ausführung des Codeblocks in den Klammern geprüft wird, es kann also sein, dass der Block niemals ausgeführt wird.

Diese beiden Code-Teile würden sich genau gleich verhalten:
Java:
if(bedingungErfüllt) {
  do {
   machWas();
  } while (bedingungErfüllt);
}
while (bedingungErfüllt) {
 machWas();
}
In beiden Fällen gäbe es n>=0 Durchläufe und n+1 Bedingungsprüfungen
 
Zuletzt bearbeitet:

Say

Aktives Mitglied
Deine Schwierigkeit scheint vor allem darin zu bestehen, zu sagen, was "passen" heißt. Was soll die Methode eigentlich machen? Was ist das gewünschte Ergebnis?

Do-While ist erschreckend simpel.
Der Inhalt in den Klammern wird mindestens einmal ausgeführt und so oft wiederholt, wie die Bedingung gilt.
Java:
do {
 machWas();
} while (bedingungErfüllt);
Im Unterschied dazu haben wir die "normale" While-Schleife.
Java:
while (bedingungErfüllt) {
 machWas();
}
Der Unterschied ist, dass die Bedingung hier vor Ausführung des Codeblocks in den Klammern geprüft wird, es kann also sein, dass der Block niemals ausgeführt wird.
Vielen Dank für deine Antwort. Würdest du alle Antworten, die gegeben sind, einfach einfügen und schauen, ob du richtige Reihenfolge erhältst? Oder wie würdest du vorgehen
 

Neumi5694

Top Contributor
Du hast dich bisher standhaft geweigert zu sagen, welche die richrtige Reihenfolge ist.
Und ich hab auch keine Ahnung, was du mit den 4 Varianten machen willst, wo du die in den Code einfügen willst.

Da ich das nicht weiß, wäre mein erster Schritt, die Aufgabe durchzulesen.
 

KonradN

Super-Moderator
Mitarbeiter
Generell sollte man Code lesen können. Das geht nur mit etwas Erfahrung. Du musst also deutlich mehr Erfahrung mit Java sammeln!

Dann schaut man sich den Code an und spielt diesen (am Anfang am Besten mit Papier und Stift!) durch. Dazu kannst Du den auf einen Zettel eine Tabelle machen. Erste Spalte ist der Code und dann kommen alle Variablen. Und dann spielst Du den Code durch.

Bei einem int m=0 schreibst Du also in der Spalte für m eine 0 rein. (Bleistift, dann kannst Du radieren)
So gehst Du dann alles durch und schaust, was passiert.

Und ja - bei sowas kann man einfach ausprobieren. Wenn man genug Erfahrung hat, dann spielt man sowas im Kopf durch.
 

Say

Aktives Mitglied
Du hast dich bisher standhaft geweigert zu sagen, welche die richrtige Reihenfolge ist.
Und ich hab auch keine Ahnung, was du mit den 4 Varianten machen willst, wo du die in den Code einfügen willst.

Da ich das nicht weiß, wäre mein erster Schritt, die Aufgabe durchzulesen.
In Code steht als Kommentar /* code fehlt */ und genau hier sollte eines davon eingefügt werden:
p = p - 2;
p = p + 2;
p = p - 1;
p = p + 1;
 

Neumi5694

Top Contributor
Dann ist es eben so, dass er beim ersten Mal in den zweiten Abschnitt reingeht, da p ungerade ist, p im Anschluss um 1 erhöht.
In Folge geht er bei der ersten Variante nur noch in den ersten Abschnitt rein, da p dann immer gerade ist (wird ja um 2 reduziert, bei der zweiten Variante um 2 erhöht). Bei Variante 3 und 4 würden die beiden Abschnitte jeweils abwechselnd aufgerufen, da p ja in beiden Abschnitten um 1 verändert würde und damit abwechselnd gerade und ungerade ist. m wird in jedem Durchgang erhöht. Und entsprechend ist dann auch die Ausgabe.
 

berndoa

Top Contributor
Ich kann Neumi nur zustimmen, ich habe keine AHnung was mit dem Code letztlich erreicht werden will.
Wenn man nicht mal das Endziel kennt, kann man auch nicht überprüfen durch das Einfügen welcher Codezeile man da hin kommt :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
J Objekt erste freie Stelle zuweisen Java Basics - Anfänger-Themen 3
R Auf eine Stelle [i] des Arrays zugreifen Java Basics - Anfänger-Themen 7
C Zeichen im String bis zu bestimmter Stelle entfernen Java Basics - Anfänger-Themen 6
A Rekursion stoppt an der falschen Stelle Java Basics - Anfänger-Themen 4
D Einlesen funktioniert an einer Stelle nicht und ich kann mir nicht erklären warum Java Basics - Anfänger-Themen 6
S Zahl an bestimmter Stelle splitten Java Basics - Anfänger-Themen 6
R Split ab bestimmter Stelle Java Basics - Anfänger-Themen 9
B Auf die x. Stelle eines Array zugreifen Java Basics - Anfänger-Themen 2
Q Erste Schritte In CharArrayWriter Zeichen an Stelle einfügen Java Basics - Anfänger-Themen 4
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
J Array um 1 stelle verschieben Java Basics - Anfänger-Themen 2
J Text kopieren an bestimmter Stelle Java Basics - Anfänger-Themen 8
Rayo ID eines Objektes an Stelle X/Y wiedergeben Java Basics - Anfänger-Themen 2
Z 10er und 100er Stelle durch Modulo Java Basics - Anfänger-Themen 2
D Compiler-Fehler incompatible types bei einer Stelle Java Basics - Anfänger-Themen 34
D Char Array ab bestimmter Stelle in neuem Speichern Java Basics - Anfänger-Themen 13
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
J Lösung eines Zahlenintervall wierd an der Falschen Stelle angezeigt. Java Basics - Anfänger-Themen 8
B Erste Schritte Eclipse Indigo sucht jvm.dll an "falscher" Stelle Java Basics - Anfänger-Themen 2
B Input/Output In Datei an eine bestimmte Stelle schreiben Java Basics - Anfänger-Themen 37
B JTextPane nur bis bestimmtes stelle löschen Java Basics - Anfänger-Themen 6
S an bestimmter stelle löschen / einfügen Java Basics - Anfänger-Themen 5
J geschickter Algorithmus um die 'Umgebung' einer stelle eines Arrays zu durchsuchen Java Basics - Anfänger-Themen 7
N String Stelle "nichts" Java Basics - Anfänger-Themen 3
M Problem mit Koordinaten - Objekte werden nicht an gewünschter Stelle gezeichnet Java Basics - Anfänger-Themen 6
StrikeTom Bestimmte stelle in string herausfiltern Java Basics - Anfänger-Themen 7
D Ab bestimmter stelle lesen Java Basics - Anfänger-Themen 3
H LinkedList Element an Stelle x ausgeben? Java Basics - Anfänger-Themen 5
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
N Text an bestimmte Stelle eines Dokuments schreiben Java Basics - Anfänger-Themen 6
S HILFE Wie stelle ich die Path Varibalen wieder ein Java Basics - Anfänger-Themen 4
T Buchstaben an bestimmter Stelle aus String lesen Java Basics - Anfänger-Themen 5
G Float schneidet nach dem Rechnen auf eine Stelle ab Java Basics - Anfänger-Themen 9
D An eine ausgewählte Stelle in der Datei schreiben? Java Basics - Anfänger-Themen 7
G bestimmte Stelle aus Textdatei auslesen. Java Basics - Anfänger-Themen 7
K Leere Stelle im Array finden und ersetzen Java Basics - Anfänger-Themen 10
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
J Programm beenden und Verweis an andere Stelle im Programm Java Basics - Anfänger-Themen 10
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
G Auslesen einer bestimmten Stelle in einer Textdatei? Java Basics - Anfänger-Themen 2
G Wert in Zeile an einer bestimmten Stelle ersetzen Java Basics - Anfänger-Themen 2
B String Stelle ausgeben Java Basics - Anfänger-Themen 10
M Wie kann man auf die Konsole an die selbe Stelle schreiben? Java Basics - Anfänger-Themen 4
H Datei lesen und an bestimmter Stelle schreiben Java Basics - Anfänger-Themen 4
S QuickSort will mir nicht in den Kopf (an einer Stelle) Java Basics - Anfänger-Themen 14
G Zeichen an bestimmter Stelle im String einfügen. Java Basics - Anfänger-Themen 4
T Stelle wo ich Properties-Datei auslesen kann? Java Basics - Anfänger-Themen 6
G String.insert an unbekannter Stelle Java Basics - Anfänger-Themen 5
D Split erfolgt nicht an der gewünschten Stelle Java Basics - Anfänger-Themen 3
J Bestimmte Stelle im Array die belegt ist wieder freigeben. Java Basics - Anfänger-Themen 3
L Variable Stelle für Stelle auslesen Java Basics - Anfänger-Themen 2
M JAR-Datei ist nur an einer Stelle im Dateisystem ausführbar Java Basics - Anfänger-Themen 31
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 3
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
K Wie kann man diesen Code schnell und effizient interpretieren (Man hat nur 4 Minuten) Java Basics - Anfänger-Themen 3
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
I HTML Code säubern Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben