DoWhile-Schleife als While-Schleife darstellen

kilopack15

Aktives Mitglied
Nabend Leute!
Soll folgende doWhile Schleife als While-Schlife darstellen, sodass dasselbe Ergebnis herauskommt.
Java:
  public Integer a_doWhile(int x){
        int i = 0;
        Integer result;
        do {
            result = ++i*i;
        } while (result < x);
        return result;
    }
Mein Lösungsansatz:
Java:
    public  Integer a_while(int x){
        // Implementieren Sie a_doWhile mit Hilfe einer While-Schleife!
        int i=0;
        int result;
        while(result < x){
            result = ++i*i;
        return result;
        }
    }
Es gibt mir jedoch die Fehler aus, dass etwas vom Typ "Integer" zurückkommen soll und das result nicht initialisiert wurde. Bei der ersten doWhile Schleife hat result ja den Typ "Integer" und nicht wie üblich "int". Was hat das zu bedeuten? Könnt ihr mir bei der Aufgabe weiterhelfen?
 
es geht um den RückgabeTyp, denn du hier
public Integer a_while(int x){
hast. statt Integer benutze einfach int

Ne, das ist nicht das Problem.
Java:
public Integer testAutoboxing (int x){
    int i = x;
    return i;
}
Sowas geht ohne Probleme, nennt sich Autoboxing.

Problem ist eher das return Statement in der while-Schleife und das result nicht initialisiert ist (zB. mit result=0). Von der restlichen Logik mal abgesehen 😉
 
Aha okay. Ja dachte mir dass es was mit der Bedingung der While-Schleife zu tun hat. Also müsste ich dafür doch sozusagen Integer result = int result setzen, um dann int result für die while-Bedingung zu nutzen oder? Wie mache ich das :?
 
Habs!!
Java:
  public static Integer a_While(int x){
        int i = 0;
        Integer result = ++i*i;
        while (result < x) {
            result = ++i*i;
        }
        return result;
        }
 
Doch jetzt muss ich dasselbe nochmal in eine for-Schleife transformieren, wobei ich gerade auf dem Schlauch stehe. kann einer weiterhelfen?
 
Die for-Schleife ist dann:
Java:
 public Integer a_for(int x){
        // Implementieren Sie a_doWhile mit Hilfe einer For-Schleife!
        int i=0;
        Integer result = ++i*i;
        for(result =++i*i;result<x;){
            result = ++i*i;
        }
        return result;
    }
Danke für eure helfenden Hände 🙂
 
dies Integer result = ++i*i; ist über flüssig, denn du übrschreibt sie inder while schleife
du kannst result = 0; setzen um sie zu initialisieren.
ansonsten hier eine alternative

Java:
public static int do_while(int x) {
        int result = 0;
        int i = 0;
        while (result < x) {
            result = ++i * i;
        }
        return result;
    }
 

Zurück
Oben