Frage von snipesss, 70

Was ist an dem Code falsch (Java Eclipse)?

Ich möchte ein einfaches Programm schreiben welches den Benutzer "zwingt" die Zahl 4 zu schreiben! Wenn ich dann aber eine andere Zahl eintippe,passiert das Richtige. Und zwar: Versuchen Sie es noch einmal" Wenn ich dann aber die 4 eintippe, fragt er wieder nach einem erneuten Versuch.

import static java.lang.System.out;
import java.util.Scanner;

public class WhileSchleife {
public static void main(String[] args) {
    
    Scanner Keyboard = new Scanner(System.in);
    out.println("Bitte geben Sie die Zahl 4 ein!");
    int Zahl = Keyboard.nextInt();
    
    while(Zahl != 4){
        out.println("Versuchen Sie es erneut!");
        Keyboard.nextInt();
        
        if (Zahl == 4){
            out.println("Gut gemacht!");
        }
    }
        
    
}
}
Antwort
von Schachpapa, 18

Du liest den Input und wirfst ihn weg. Zahl = Keyboard.nextint()

Das if kannst du dir schenken, beim Verlassen der Schleife ist Zahl==4

Antwort
von FluppenJoe, 50

Die if abfrage steht in der whileschleife die NUR DANN durchläuft wenn Zahl != 4 ist, d.h. das if kann nie true sein

 while(Zahl != 4){
out.println("Versuchen Sie es erneut!");
Keyboard.nextInt();

if (Zahl == 4){
out.println("Gut gemacht!");
}
}
Kommentar von snipesss ,

Wie sollte der Code dann aussehen?

Kommentar von FluppenJoe ,

Wenn du das Problem (noch) nicht verstehst solltest du dich erstmal an kleineren Programmieraufgaben versuchen, am besten ohne user input damit du lernst mit if/while/for umzugehen

Kommentar von snipesss ,

Wie sollte der Code dann aussehen? Wenn du es mir sagst. Verstehe ich es auch. Bitte

Kommentar von FluppenJoe ,

nimm das while raus und ersetz es durch if und lager das ganze in einer eigenen Funktion aus, rufe diese funktion in einer Schleife in der main-funktion auf

Kommentar von snipesss ,

Danke

Kommentar von TheAceOfSpades ,

Dass das if nicht abgefragt wird liegt ja nicht unbedingt daran, dass es in der while (Zahl! =4) Schleife steht sondern daran, dass die Zahl während dem Ausführen der Schleife nicht geändert wird.

while(Zahl != 4){
out.println("Versuchen Sie es erneut!");
Zahl = Keyboard.nextInt();

if (Zahl == 4){
out.println("Gut gemacht!");
}
}

Dann würde z.b. das if ausgeführt werden obwohl es in der while Schleife steht.

Antwort
von fthee, 37

if (Zahl == 4){
            out.println("Gut gemacht!")
Kann niemals geschehen, da es in der while Zahl!=4 schleife drinnen ist...

Kommentar von snipesss ,

Wie soll der Code dann aussehen?

Kommentar von fthee ,

Eine } vor dem if und eine danach weniger

Antwort
von Matrose69, 28

Kannst du mir deine Skype geben? Denn ich denke es ist besser dir das zu erklären als es einfach zu schreiben^^

Keine passende Antwort gefunden?

Fragen Sie die Community