while Schleife und Bedingung

werdas34

Bekanntes Mitglied
Hallo,
ich habe folgendes Codeproblem.
Java:
while(wert > 0){
//Anweisungen (auch wert wird geändert)
wert = Objekt.read();
}
Es ist so, das irgendwann Objekt.read() einen Wert liest (-1) der die Schleifenbedingung nicht erfüllt. Jedoch soll die Schleife dann noch genau einmal weiter durchlaufen werden, um die letzten Berechnungen durchzuführen.
Habe schon probiert innerhalb der Schleife eine weitere Variable zu setzen und mittels if-Anweisung, den Wert künstlich hochzuhalten. Ich überlege schon seit ner Stunde, um irgendetwas zu finden, aber mir fällt nichts ein.

Gibt es einen Trick, damit die Schleife, die eigentlich beendet ist, nochmal einen einzigen Durchlauf macht?

Ein anderes Problem zu der Bedingung einer while-Schleife:
Es geht darum, sobald ein Wert nicht zwischen A und Z oder a und z liegt, soll 26 addiert bzw subtrahiert werden, um wieder zu einem Buchstaben zu gelangen.

Java:
char code = 'A'
code -= 1 // code = 64 und kein Großbuchstabe im Unicode mehr
while(code > 'Z' || code < 'A')){
code += 26; // code =90 entspricht Z
}
Das funktioniert. Wenn ich es jedoch um die kleinen Buchstaben erweitere funktioniert das nicht mehr.
Dann sowas:
Code:
while(!(code > 'A' && code < 'Z') || !(code > 'a' && code < 'z')){

}

Da bleibt er aber länger in der Schleife und macht die Rechnung mehrmals.

Vielleicht erkennt jemand das Problem und kann mir helfen.

Danke.
PS: Beide Aufgaben sollen ohne eigene Funktionen und "besonderen" Sachen auskommen.
 

werdas34

Bekanntes Mitglied
Habe das zweite Problem nun gelöst.
Ich schrieb, das man quasi nur die einfachsten Dinge nutzen darf, aber die Bibliotheksfunktionen sind da auch mit drin.
Code:
while(!Character.isLetter(code)){
}

Jedoch bin ich bei meinem ersten Schleifenproblem noch nicht weiter.
 

mrBrown

Super-Moderator
Mitarbeiter
Warum wird wert denn in der Schleife verändert? Das dürfte deutlich einfacher sein, wenn man den Wert nicht verändert, und für die Berechnungen in der Schleife eine eigene Variable nutzt.

Eine Schleife, die einfach so noch einen Durchlauf macht, gibts nicht. uU kann man das zu einer do-while umformen, das kommt aber in dem Fall aus das drumherum an.
Wo kommt den der allererste Wert her?
 

werdas34

Bekanntes Mitglied
Das war ein Teil der Aufgabe, das dieser wert in die Bedingung kommt. Ob man noch weitere hinzufügt ist selbst einem überlassen.
Der wert wird über die Konsole (also wenn man cmd in Windows eingibt, weiß nicht ob das so heißt) und es können werte von 1 - 9 kommen. Kommt keine Zahl mehr bekommt der wert -1. Man liest in der Schleife den wert ein und führt im nächsten Schleifendurchlauf dann Berechnungen mit werten durch, die man zuvor ermittelt hat und in andere Variabeln umgeändert hat.
Ungefähr so:
Java:
while(methode()){

if(var1 > var2 && var2 > var3){
print ...
}
wert = Objekt.read(); // liest aktuellen Wert ein
var1 = var2;
var2 = var3;
var3 = wert;
}
Da ich eigentlich doch etwas Java kann und nicht weiß wie man das sonst lösen soll, hab ich jetzt eine Methode geschrieben, die das für mich löst. Und das funktioniert jetzt auch.
 

Javinner

Top Contributor
werdas34 hat gesagt.:
while(!(code > 'A' && code < 'Z') || !(code > 'a' && code < 'z')
Ich würde an deiner Stelle andere Bezeichnungen vergeben, so dass es bereits beim Lesen von Code
klar ist, was die Methode macht. Es ist sicher mit mehr Schreibarbeit verbunden, hat aber den Vorteil, dass man den Code auch später ohne weiteres versteht.
Java:
public class Test
{

    public static void main(String[] args)
    {

        boolean leftFree= true;
        boolean rightFree = false;

        String info = isPossibleToCrossTheStreet(leftFree, rightFree) ? "Ich kann über die Strasse gehen" : "Ich muss noch warten";
        System.out.println(info);

    }

    static boolean isPossibleToCrossTheStreet(boolean... value)
    {
        boolean isTrue = true;
        for (Boolean b : value) {
            if (!b) {
                isTrue = !isTrue;
                return isTrue;
            }
        }
        return isTrue;
    }

}
 

temi

Top Contributor
Es ist sicher mit mehr Schreibarbeit verbunden, hat aber den Vorteil, dass man den Code auch später ohne weiteres versteht.
Deine Intention ist löblich, aber das finde ich jetzt auch nicht so ganz ohne weiteres zu verstehen: isTrue = !isTrue;
Genauso wie das direkt folgende return isTrue;, was tatsächlich ja false zurück liefert.

Mein Vorschlag wäre:
Java:
    static boolean canCrossTheStreet(boolean... value)
    {
        // todo: Parameter auf null oder leer prüfen
        for (Boolean b : value) {
            if (!b) {
                return false;
            }
        }
        return true;
    }
 

Javinner

Top Contributor
Genauso wie das direkt folgende return isTrue;, was tatsächlich ja false zurück liefert.
Nein, macht es nicht. Die Methode wird ja gleich beim ersten Falsch-Wert wieder verlassen. Ergo das Zweite return übersprungen. Nur, wenn alle Werte Wahl liefern, wird isTrue als ursprünglich deklariert auch zurückgegeben.

Aber deine Ausführung ist natürlich smarter :)
 

Javinner

Top Contributor
@temi
Ich glaube, wir schreiben an einander vorbei :)
Java:
static boolean isPossibleToCrossTheStreet(boolean... value)
    {
        //Nur, wenn alle Werte Wahr liefern, wird isTrue als ursprünglich deklariert auch zurückgegeben
        boolean isTrue = true;
        for (Boolean b : value) {
            if (!b) {
                //Hier wird der erstmoegliche Falschwert registriert, die Variable isTrue negiert und zurueckgegeben
                //Wie du es bereits vorgefuehrt hast, ist ein return false; uebersichtlicher und kommt ganz ohne der
                //Variable isTrue aus.
                isTrue = !isTrue;
                return isTrue;
            }
        }
        return isTrue; //Hier, nur wenn alle Werte Wahr liefern.
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
H Bedingung while-Schleife | integer number too large Java Basics - Anfänger-Themen 2
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
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
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
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

Ähnliche Java Themen

Neue Themen


Oben