also, wenn ich die for-Schleife richtig lese, müsste sie doch nur einmal druchlaufen werden, weil sie ja nur so lange durchlaufen wird, bis X<=1 ist.
Bei dem Outprint komm ich aber echt nicht mit. Wenn ich es durchmache, dann komm ich auf
7 (5-2+4)
3 (1+2)
LEider steht in den Lösungen,dass
6
7
rauskommen soll. Ich hoffe mal, dass mir einer von euch erklären kann, wieso.
Danke im Voraus!
danke erstmal für die Antwort - kannst du mir das ganze bitte mal absolut idiotensicher erklären? also wirklich schritt für schritt. Bei uns im Skript steht, dass x++ und ++x im endeffekt heißen x=x+1 (also um 1 erhöht) und x-- bzw --x heißt X=x-1 (also eins weniger)
Deswegen verstehe ich das ganze nicht so ganz, abr evtl. interpretiere ich es auch falsch.
Sorry übrigens,wenn ihr jetzt denkt, ich bin ein bisschen doof lol, aber der PRof war dieses Semester nur krank und so hatten wir nur 2 vorlesungen java...
bedeuten nicht das gleiche. Wenn sie für sich stehen, sagen wir mal am Ende einer while-Schleife, dann spielt es keine Rolle, aber von Bedeutung ist die Reihenfolge der Operatoren z.B. bei Zuweisungen, wenn [c]x++[/c] bzw.
Code:
++x
auf der rechten Seite eines Ausdrucks stehen:
Variante 1
Java:
int y =2;int z = y++;System.out.println(y+", "+z);
Variante 2
Java:
int y =2;int z =++y;System.out.println(y+", "+z);
Bei 1) erhält z zunächst den aktuellen Wert von y (in diesem Fall 2) und erst dann wird y um eins erhöht. Die Ausgabe wäre dann
Code:
3, 2
.
Bei 2) wird y zunächst erhöht und erst dann z zugewiesen. Ausgabe:
Code:
3, 3
.
EDIT:
Hab das da oben gerade mal nachgerechnet und komme bei
[JAVA=9]Wie = --wAs + ++Was;[/code]
aber auf 8. Rechnung:
Code:
wAs
ist 2.
Code:
wAs
wird um 1 erniedrigt -> 1.
Code:
Was
ist zu dem Zeitpunkt 6, wird um 1 erhöht -> 7. 1+7 = 8
Ich habe auch dreimal überlegen müsssen bei den ganze WaS wIE Wo usw. ...
1. Hier wird alles dem Was zugewiesen. Leutet ein?^^
Java:
Was=++Wie- waS--+++waS;
2. Die Variable "Wie" wird um eins hochgezählt => Wie(5)
3. Das Wie(5) vom waS(3) subtrahiert.
4. Das waS(3) wird dannach um 1 erniedrigt => waS(2).
5. Das waS(2) wird um 1 erhöht => waS(3).
6. Erst am Ende wird die 2 (Ergebnis von Punkt 3) mit dem waS(3) addiert.
7. Was = ((5 + 3) +3) = 5
Java:
Wie=--wAs +++Was;
8. Wie = 1 + 6 = 7
Bei 8. haben wir aber das "Was" um eins nach oben gezählt und zugewiesen. Desshalb hat unser neues "Was" den Wert (5+1) = 6.
gut, und wie wende ich das jetzt auf meine Aufgabe an?
also ++Wie ist 5, weil ich es erst um eins erhöhe und dann erst Was zuweise? Was-- ist 3, weil Was zuerst den aktuellen Wert zugewiesen bekommt? aber wieso is dann ++waS 3 und nicht 4? jedenfalls sagt das ja Ruzmanz, oder lese ich seine Antwort falsch, weil wenn ich es so verstehe, wie in deiner erklärung, müsste das waS ja jetzt 4 sein, oder?
und wie man in der zweiten zeile auf 7 kommen soll, ist mir immernoch ein rätsel....
AHHHHHHHHHHH
jetzt, also weil ich in der ersten anweisung auf 6 kam, muss ich mit dem auch weiterrechnen??? ich hab nämlich gedacht, ich muss das was aus der oberen aufgabe nehmen...na so ein rotz lol
also ich denk mal, dass hab ich nun verstanden. jetzt hab ich leider noch 2 aufgaben und hoffe mal ihr könnt es mir wieder so idiotensicher (ich bezeichne mich in bezug auf java selbst wirklich als idiot) erklären. also:
voidVerzwicktUndZugenaht(){intGarnFarbe=3;charQualitat='B';doubleGarnDicke=0.65;if(GarnDicke<0.65){System.out.print("Sackleinen oder ");if(GarnFarbe<3){if(Qualitat=='A'){System.out.println("Designerware.");}System.out.println("Schmuddelstil");}}elseif(GarnDicke<1.0){System.out.print("Mustermix - ");if(GarnFarbe<=3){if(Qualitat=='B'){System.out.println("Fludderig");}else{System.out.print("Leuchtkraftwunder oder ");}System.out.print("Ausgebleicht und ");}else{System.out.println("Seidenglanz");}System.out.println("Zerosize");}else{System.out.println("...");}System.out.print("Wunderkind");}
also Nummer 2 solltest du auch ohne Debugger schaffen. Einfach schrittweise durch das Programm
gehen, so viele Pfade gibt es da ja nicht. Für die Nummer 1 würde ich aber auch einen Debugger/IDE
verwenden.
aus meinem Studium. Ich studier zwar "Nur" Marketing, aber wir haben halt auch Wirtschaftsinformatik 2 Semester lang. Im ersten so Sachen wie Excel etc. und im 2. dann eben Java, ERMs erstellen, Dateiorganisation und solche Sachen. Bin mir nicht sicher, ob es mir was bringt den Debugger zu nutzen, denn ich muss es ja in der Klausur auch ohne machen...
Du hast in den meisten IDEs BlueJ, Eclipse oder Netbeans einen Debugger. Wenn du am Beginn deines Programms eine "Start-Marke" legst, dann öffnet sich der Debugger an diesem Punkt und du kannst schrittweise dein Programm durchlaufen. Dabei wird dir jede Zeile deines Quellcodes angezeigt und die Werte, welche sich ändern.