Wie erstelle ich eine While-Schleife mit "boolean Überprüfung"?
So, also dieses Mal versuche ich die Eingabemöglichkeit einzuschränken. Ich möchte eine Zahleneingabe von 1 bis 3 begrenzen, alles was unter 1 (also 0) oder über 3 ist, soll nicht akzeptiert werden und wieder zum Anfang springen (darum eine while-Schleife), diese jedoch soll mit Hilfe von einer boolean Abfrage überprüft werden. "Ist es innerhalb von 1-3 -> ja -> dann weiterlassen in der Schleife (mit meinen Befehlen), ansonsten [nicht akzeptiert und zum Anfang gesprungen]".
Joa ich hab keine Ahnung wie ich das machen soll, alle Informatiker dürfen mir dabei gerne helfen.
>>Falls das irgendwie beim Verständnis helfen sollte.
5 Antworten
Aus der Mathematik in der Schule kennst du vielleicht noch die Vergleichsoperatoren. Beim Programmieren funktioniert das genauso. Das heißt, die folgende Bedingung
(eingabe >= 3) && (eingabe <= 1)
kannst du übersetzen zu
Wenn die Eingabe größer gleich drei und kleiner gleich 1 ist
Wenn ich deinen Fragetext durchlese, möchtest du ja aber genau das Gegenteil. Du kannst jetzt diese Bedingung invertieren:
!((eingabe >= 3) && (eingabe <= 1))
oder gleich so hinschreiben, wie du es haben möchtest:
(eingabe <= 3) && (eingabe >= 1)
Mehr zu den Vergleichsoperatoren findest du hier unter den Equality, Relational, and Conditional Operators in der offiziellen Dokumentation.
Als Schleife bietet sich hier eine Do-While-Schleife an, siehe:
public int angriffsstufeWaehlen(){
int eingabe;
System.out.println("Waehle deine Angriffstufe (1-3):");
do{
eingabe = tastatur.nextInt();
} while ((eingabe <= 3) && (eingabe >= 1));
return eingabe;
}
Hilfe, ist das Greenfoot oder das billige BlueJ?
Würden sie die Godot Engine verwenden, wäre die Welt in Ordnung.
Java ist längst ausgestorben, C++ und Python ist die Zukunft.
Haben wir auch in der Schule benutzt. Ziemlich hässliches Programm.
...
int eingabe;
while(true){
System.out.println("Angriffstufe (1-3):");
eingabe = tastatur.nextInt();
if(eingabe >= 1 && eingabe <= 3) return eingabe;
System.out.println("Ungültige Eingabe.");
}
...
Laut deinem Screenshot hast du die Bedingung bereits formuliert, allerdings ist sie noch nicht ganz richtig.
- Du prüfst, ob die Eingabe über/gleich 3 und unter/gleich 1 ist. Das wird wohl nie zutreffen.
- Du beziehst die Zahlen 3 und 1 noch mit ein, obwohl sie laut Aufgabenstellung doch noch in der erlaubten Menge mit inbegriffen sind.
Des Weiteren sollte der Ausdruck nicht Bedingung des if sein.
Mir ist unklar was nun wie schleife sein soll ?
eingabe = 0
while (eingabe < 1 || eingabe > 3) {
System.out.println("Wähle ...");
eingabe = tastatur.nextInt();
if (eingabe < 1 || eingabe > 3) {
System.out.println("Bitte nochmal ...");
}
}
... toDo Stuff ...
Das wird in Schulen für Anfänger verwendet... da kann man leider nix gegen machen, aber es muss anscheinend so leicht wie möglich sein...