Verständnisproblem Ausgabe Do-While-Schleife

Hallo!

Ich bin noch blutige Anfängerin, zerreißt mich also bitte nicht direkt in der Luft 🙂

Ich habe folgendes Problem:
Wenn ich den Algorithmus eingebe, erhalte ich bei der Ausgabe Werte, die ich nicht ganz nachvollziehen kann.

Um diesen Algorithmus geht es:
Java:
import java.util.Scanner;
public class Test1 {
   public static void main (String[] args) {
     Scanner scan = new Scanner(System.in);
     int eingabe;
     int ausgabe;
   
     eingabe = scan.nextInt();
     ausgabe = 0;
     do {
       ausgabe = eingabe + 1;
       eingabe = eingabe - 1;
     } while (eingabe >= 0);
   
     System.out.println(ausgabe);
   }
}

Für jeden Wert >= 0, den ich eingebe, erhalte ich als Ausgabe 1. Sobald ich eine negative Zahl eingebe, wird der Wert noch mit 1 subtrahiert.

Rein von meinem bisherigem (noch sehr beschränktem 😉) Verständnis her, hätte ich vermutet, dass im ersten Schritt der Schleife für die Variable ausgabe eingabe + 1 deklariert wird. Wenn ich also z. B. 5 als eingabe eingebe, müsste ausgabe demnach 6 sein (5 + 1).
Im nächsten Schritt wird dann ja die eingabe neu deklariert und man stünde wieder bei 5 (6 - 1). Demnach müsste es doch eine Endlos-Schleife sein.
Ich stehe hier also irgendwie gerade auf dem Schlauch, weshalb bei der Ausgabe 1 ausgegeben wird.

Könnt ihr mir da weiterhelfen?
Vielen Dank schon mal! 🙂
 
Zuletzt bearbeitet von einem Moderator:
Du könntest in der Schleife die aktuellen Werte bei jedem durchlauf ausgeben. Daraus wird ersichtlich welche Werte ausgabe und eingabe bekommen.
Übrigens
Java:
eingabe=eingabe-1;
Kann man kürzer schreiben:
Java:
eingabe--;
 
Hier
Code:
eingabe = eingabe - 1;
wird ja vom aktuellen Wert von "eingabe" immer 1 subtrahiert, d.h. es durchläuft nacheinander die Werte 5, 4, .... 0 (um bei deinem Beispiel zu bleiben.)
Beim letzten Durchlauf der Schleife ist eingabe also 0. Ausgabe wird dann 0+1, und es ist auch völlig egal was du eingibst.
 

Neue Themen


Zurück
Oben