Do while Schleife wiederholen

SergioCK

Mitglied
Hallo Leute!

Habe heute eine einfache Aufgabe bekommen. Muss ein Programm in Java schreiben, welches eine Zahl entgegennimmt, 5 addiert und das Ergebnis anzeigt. War bisher auch gar kein Problem, klappt alles. Ich muss nun aber dem User die Möglichkeit geben, zu entscheiden, ob die Anwendung einen weiteren Durchgang startet. Es sollen unendlich Durchgänge möglich sein. Ich weiß schon, dass ich eine do/while Schleife benutzen sollte, jedoch verstehe ich nicht, wie ich die Bedingung formulieren soll, also, dass die Anwendung einen neuen Durchgang startet. Bin leider kompletter Code-Anfänger und versuche gerade ein bisschen zu lernen für meine Ausbildung nächstes Jahr. Hier ist mein Code:

Java:
import java.util.Scanner;

public class Aufgabe{
    public static void main(String args[]) {
      Scanner zahl = new Scanner(System.in);
      do {
      System.out.println("Bitte geben sie eine Zahl ein!");
      int x = zahl.nextInt();
      int y = x+5;
      System.out.println(y);
      System.out.println("Wollen sie dies wiederholen? (j/n)");
    } while

    }
}

PS: Ich will nicht einfach die Lösung wissen... Ich bräuchte nur mal einen Hinweis oder einen Rat.
 

kneitzel

Top Contributor
Im Augenblick gibst Du nur aus:
Wollen sie dies wiederholen? (j/n)

Du musst also noch die Eingabe abfragen.
Und dann soll die while Schleife so lange laufen bis die Eingabe einen bestimmten Wert hat.
 

SergioCK

Mitglied
Im Augenblick gibst Du nur aus:
Wollen sie dies wiederholen? (j/n)

Du musst also noch die Eingabe abfragen.
Und dann soll die while Schleife so lange laufen bis die Eingabe einen bestimmten Wert hat.
Muss ich also einen neuen Scanner erstellen? also sowas in der art? ich hab wirklich keine ahnung mehr :(

Java:
import java.util.Scanner;

public class Aufgabe{
    public static void main(String args[]) {
      Scanner zahl = new Scanner(System.in);
      do {
      System.out.println("Bitte geben sie eine Zahl ein!");
      int x = zahl.nextInt();
      int y = x+5;
      System.out.println(y);
      System.out.println("Wollen sie dies wiederholen? (j/n)");
      Scanner antwort = new Scanner(System.in);
      int antwort = antwort.nextInt();
    } while (antwort = j);

    }
}
 

kneitzel

Top Contributor
Scanner musst Du nur einen erstellen um von System.in zu lesen. Und der sollte auch entsprechend heißen. Ein Scanner ist keine Zahl und keine Antwort. Es ist einfach ein Scanner, daher kann man den z.B. scanner nennen.
Aber diesen einmal am Anfang erzeugten Scanner kannst Du ständig nutzen.

Dann willst Du Zeichen wie "j" oder "n" einlesen. Sind das Integer Zahlen? Wenn es Integer Zahlen sind, dann ist nextInt() richtig. Wenn es kein int ist, dann wird das damit nicht funktionieren. Dann müsstest Du mal schauen, was es sonst noch an Methoden beim Scanner gibt.

Dann wären noch die letzten zwei Punkte:
- Wie kannst Du ein Sting Literal im Code angeben? Du hast ja schon zwei String Literale im Code - jeweils in einem println.
- Wie vergleicht man Strings? (Das = ist die Zuweisung, ein Vergleich wäre == aber wenn ich so frage, wird auch das == wohl nicht korrekt sein ;) )
 

SergioCK

Mitglied
Scanner musst Du nur einen erstellen um von System.in zu lesen. Und der sollte auch entsprechend heißen. Ein Scanner ist keine Zahl und keine Antwort. Es ist einfach ein Scanner, daher kann man den z.B. scanner nennen.
Aber diesen einmal am Anfang erzeugten Scanner kannst Du ständig nutzen.

Dann willst Du Zeichen wie "j" oder "n" einlesen. Sind das Integer Zahlen? Wenn es Integer Zahlen sind, dann ist nextInt() richtig. Wenn es kein int ist, dann wird das damit nicht funktionieren. Dann müsstest Du mal schauen, was es sonst noch an Methoden beim Scanner gibt.

Dann wären noch die letzten zwei Punkte:
- Wie kannst Du ein Sting Literal im Code angeben? Du hast ja schon zwei String Literale im Code - jeweils in einem println.
- Wie vergleicht man Strings? (Das = ist die Zuweisung, ein Vergleich wäre == aber wenn ich so frage, wird auch das == wohl nicht korrekt sein ;) )
So, bin jetzt schonmal viel weiter, danke! Sie sind mir wirklich eine große Hilfe! Jetzt bekomme ich aber leider eine Fehlermeldung..
Java:
  /Aufgabe.java:13: error: cannot find symbol
      } while(antwort = "j");

Und hier nochmal der neue Code:

Java:
import java.util.Scanner;

public class Aufgabe {
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      do {
      System.out.println("Bitte geben sie eine Zahl ein!");
      int x = sc.nextInt();
      int y = x+5;
      System.out.println(y);
      System.out.println("Wollen sie dies wiederholen? (j/n)");
      char antwort = sc.next().charAt(0);
      } while(antwort = "j");

    }
}
 

kneitzel

Top Contributor
Wenn Du eine Variable in einem Block deklarierst, dann ist diese Variable nur innerhalb des Blockes gültig.
Das bedeutet, dass die Variable antwort an der } aufhört zu existieren.

Du müsstest die Variable also außerhalb des Blocks deklarieren - also z.B. direkt beim Scanner:
Java:
public class Aufgabe {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        char antwort;
        do {
            ...
            System.out.println("Wollen sie dies wiederholen? (j/n)");
            antwort = sc.next().charAt(0);
      } while(antwort = "j");
    }
}

Aber dennoch ist da noch ein Problem:
antwort = "j"
Hier weist Du der Variablen antwort den String "j" zu. Aber das willst Du ja nicht.
Schau bitte noch einmal, wie Du Strings richtig vergleichst!
 

SergioCK

Mitglied
Wenn Du eine Variable in einem Block deklarierst, dann ist diese Variable nur innerhalb des Blockes gültig.
Das bedeutet, dass die Variable antwort an der } aufhört zu existieren.

Du müsstest die Variable also außerhalb des Blocks deklarieren - also z.B. direkt beim Scanner:
Java:
public class Aufgabe {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        char antwort;
        do {
            ...
            System.out.println("Wollen sie dies wiederholen? (j/n)");
            antwort = sc.next().charAt(0);
      } while(antwort = "j");
    }
}

Aber dennoch ist da noch ein Problem:
antwort = "j"
Hier weist Du der Variablen antwort den String "j" zu. Aber das willst Du ja nicht.
Schau bitte noch einmal, wie Du Strings richtig vergleichst!
Ich hab gar keine Ahnung von Strings.. ich habe doch auch nirgends einen String definiert? So langsam wird das frustrierend.. Nach meiner Recherche glaube ich, dass ich "equals" benutzen muss jedoch bekomme ich da auch nur Fehlermeldungen. :/
 

SergioCK

Mitglied
Poste doch mal deinen Code in dem du die Strings vergleichst.
Java:
import java.util.Scanner;

public class Aufgabe {
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      char antwort;
      do {
      System.out.println("Bitte geben sie eine Zahl ein!");
      int x = sc.nextInt();
      int y = x+5;
      System.out.println(y);
      System.out.println("Wollen sie dies wiederholen? (j/n)");
      antwort = sc.next().charAt(0);
      } while(antwort.equals(j));

    }
}
 

temi

Top Contributor
Grundsätzlich ist das einfache "=" eine Zuweisung und das doppelte "==" ein Vergleich. Das ist das Hauptproblem in deinem Code von Beitrag #5.
 

kneitzel

Top Contributor
Ok, ich hatte nicht gesehen, dass du charAt(0) aufrufst. char wird mit == verglichen, daher kannst Du es mit dem Zeichen j vergleichen. Ein char Literal wird aber in ' angegeben. Also ein
while (antwort == 'j');

Ansonsten wäre meine Idee ursprünglich gewesen:
Java:
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      String antwort;
      do {
      System.out.println("Bitte geben sie eine Zahl ein!");
      int x = sc.nextInt();
      int y = x+5;
      System.out.println(y);
      System.out.println("Wollen sie dies wiederholen? (j/n)");
      antwort = sc.next();
      } while(antwort.equals("j"));

    }

Hier würde ein String verwendet.
 

SergioCK

Mitglied
Ok, ich hatte nicht gesehen, dass du charAt(0) aufrufst. char wird mit == verglichen, daher kannst Du es mit dem Zeichen j vergleichen. Ein char Literal wird aber in ' angegeben. Also ein
while (antwort == 'j');

Ansonsten wäre meine Idee ursprünglich gewesen:
Java:
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      String antwort;
      do {
      System.out.println("Bitte geben sie eine Zahl ein!");
      int x = sc.nextInt();
      int y = x+5;
      System.out.println(y);
      System.out.println("Wollen sie dies wiederholen? (j/n)");
      antwort = sc.next();
      } while(antwort.equals("j"));

    }

Hier würde ein String verwendet.
Vielen Dank an alle! Funktioniert jetzt alles.
 

Kotelettklopfer

Bekanntes Mitglied
Hey,
mich wundert dass du die Frage hier stellst obwohl diese vor 6 Std. schon ausreichend bei Facebook erklärt wurde !?
Müsste doch reichen für die Aufgabe die deine zukünftige Ausbildungsstelle dir geschickt hat?

Andererseits können andere Lernwillige jetzt das Ergebnis hier auch sehen, also wird es schon passen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
b1ck while-Schleife Java Basics - Anfänger-Themen 10
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
kilopack15 DoWhile-Schleife als While-Schleife darstellen Java Basics - Anfänger-Themen 9
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
T Variablen Var aus While-Schleife abfragen -.-' Java Basics - Anfänger-Themen 9
snipesss Schlüsselworte While Schleife Java Basics - Anfänger-Themen 3
snipesss While Schleife Java Basics - Anfänger-Themen 6
A Do-While Schleife; int vergleich Java Basics - Anfänger-Themen 2
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
Ste3et_C0st Dynamische While/For Schleife Java Basics - Anfänger-Themen 7
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
A While und For Schleife Java Basics - Anfänger-Themen 2
C Erste Schritte Frage zur do while- und while-Schleife Java Basics - Anfänger-Themen 4
C Do-While Schleife (Fehler bei der Klammerung?) Java Basics - Anfänger-Themen 8
C while-Schleife wird zuoft durchgeführt Java Basics - Anfänger-Themen 2
F Problem do while Schleife und Scanner Java Basics - Anfänger-Themen 2
F Programm bricht While Schleife nicht ab Java Basics - Anfänger-Themen 4
S Verständnis - Frage mehrere SQL Statements in While Schleife Java Basics - Anfänger-Themen 0
C Erste Schritte Warum ist die While Schleife so schnell? Java Basics - Anfänger-Themen 5
A was wird in der while schleife gemacht Java Basics - Anfänger-Themen 3
A Kleines Abbruch-Problem mit Do-While-Schleife Java Basics - Anfänger-Themen 4
Z Logikfehler do-while Schleife Java Basics - Anfänger-Themen 4
E While-Schleife Java Basics - Anfänger-Themen 6
D Textfield im Game ,Problem: while-Schleife Java Basics - Anfänger-Themen 1
A Probleme mit While Schleife Java Basics - Anfänger-Themen 10
M Fibonacci-Folge mit while-Schleife Java Basics - Anfänger-Themen 4
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
LangUndBreit Erste Schritte 100% cpu auslastung (evtl unendliche while schleife?) Java Basics - Anfänger-Themen 1
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
T while Schleife Java Basics - Anfänger-Themen 22
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
F Problem mit der While schleife und dem Scanner Java Basics - Anfänger-Themen 2
A do while Schleife wird 2 mal durchlaufen Java Basics - Anfänger-Themen 3
Z Compiler-Fehler do while schleife Java Basics - Anfänger-Themen 4
C Probleme in der While-Schleife? Java Basics - Anfänger-Themen 3
F while Schleife ohne Klammern Java Basics - Anfänger-Themen 9
G While schleife mit 2 Bedingungen geht nicht! Java Basics - Anfänger-Themen 15
M Erste Schritte sehe Fehler bei der while schleife nicht... Java Basics - Anfänger-Themen 5
P while schleife Java Basics - Anfänger-Themen 2
J While-Schleife und Scanner enden nicht? Java Basics - Anfänger-Themen 2
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
L while-Schleife und das Logisch UND Java Basics - Anfänger-Themen 8
S Erste Schritte While-Schleife Java Basics - Anfänger-Themen 3
1 while schleife Java Basics - Anfänger-Themen 4
T Erste Schritte unendliche while-Schleife Java Basics - Anfänger-Themen 3
S Operatoren Programm verlässt Do-While Schleife nicht - Warum? Java Basics - Anfänger-Themen 18
K while schleife warum unendlich ? Java Basics - Anfänger-Themen 5
S Frage zu While Schleife mit Pre- und Postinkrement Java Basics - Anfänger-Themen 4
T While-Schleife. Wert wird nicht erhöht? Java Basics - Anfänger-Themen 2
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
K While-Schleife läuft nicht durch Java Basics - Anfänger-Themen 12
B do while schleife Java Basics - Anfänger-Themen 12

Ähnliche Java Themen


Oben