Zum Inhalt springen

While Schleife. Richtig oder falsch?


kumbu

Empfohlene Beiträge

Hallo Leute,

undzwar habe ich als Aufgabe ein Haus und eine Sonne mit Java BlueJ zu programmieren. Diese Sonne soll einen Sonnenuntergang durchlaufen können. Leider funktioniert das bei mir nicht. Ich habe aber auch noch nie mit Java programmiert das ist mein aller erster versuch. Ich hab meine while Schleife (sofern das überhaupt eine ist...) rot markiert.


public class Zeichnung

{

    private Quadrat wand;

    private Quadrat fenster;

    private Dreieck dach;

    private Kreis sonne;


    /**

     * Erzeuge ein Exemplar der Klasse Zeichnung

     */

    public Zeichnung()

    {

        // nichts zu tun hier, alle Exemplarvariablen werden automatisch

        // mit null initialisiert.

    }


    /**

     * Zeichne die Zeichnung.

     */

    public void zeichne()

    {

        wand = new Quadrat();

        wand.vertikalBewegen(80);

        wand.groesseAendern(100);

        wand.sichtbarMachen();


        fenster = new Quadrat();

        fenster.farbeAendern("schwarz");

        fenster.horizontalBewegen(20);

        fenster.vertikalBewegen(100);

        fenster.sichtbarMachen();


        dach = new Dreieck();  

        dach.groesseAendern(50, 140);

        dach.horizontalBewegen(60);

        dach.vertikalBewegen(70);

        dach.sichtbarMachen();


        sonne = new Kreis();

        sonne.farbeAendern("gelb");

        sonne.horizontalBewegen(180);

        sonne.vertikalBewegen(-10);

        sonne.groesseAendern(60);

        sonne.sichtbarMachen();


        [COLOR="red"]while (zeichne)

        {

            sonne.langsamHorizentalBewegen(5);

            sonne.langsamVertikalBewegen(5);

    }

[/COLOR]

    /**

     * Ändere die Darstellung in schwarz-weiß.

     */

    public void inSchwarzWeissAendern()

    {

        if(wand != null)   // nur wenn schon gezeichnet wurde ...

        {

            wand.farbeAendern("schwarz");

            fenster.farbeAendern("weiss");

            dach.farbeAendern("schwarz");

            sonne.farbeAendern("schwarz");

        }

    }


    /**

     * Ändere die Darstellung in Farbe.

     */

    public void inFarbeAendern()

    {

        if(wand != null)   // nur wenn schon gezeichnet wurde ...

        {

            wand.farbeAendern("rot");

            fenster.farbeAendern("schwarz");

            dach.farbeAendern("gruen");

            sonne.farbeAendern("gelb");

        }

    }

}

Bearbeitet von flashpixx
code tags
Link zu diesem Kommentar
Auf anderen Seiten teilen

tut mir leid ich merk es mir für das nächste mal mit den Code Tags, ich muss mich hier ersteinmal in das Forum einarbeiten.

ich habe gedacht ich kann dort eintragen was man will deswegen zeichne...dann ist das wohl falsch.... Heißt also in die Klammer kommt eine Abbruchbedingung rein oder habe ich das falsch verstanden?

und ist die while schleife überhaupt richtig? Ich glaube hier fehlt auch eine Abbruchbedingung oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

dies funktioniert leider auch nicht...ich glaube ich habe da ein grundsätzliches Problem...arbeie jetzt leider das erste mal mit java/BlueJ


for (int i=1; i<=200; i++)

        {sonne.langsamHorizontalBewegen = sonne.langsamHorizontalBewegen + i;

            sonne.langsamVertikalBewegen = sonne.langsamVertikalBewegen + i;




        }

Link zu diesem Kommentar
Auf anderen Seiten teilen

ganz oben habe ich ja den kompletten Quelltext gepostet, das sonne steht für die Sonne die sich bewegen soll deswegen diese for schleife. jedoch wenn ich es ausführen will kommt die meldung "cannot find symbol - variable langsamHorizontalBewegen


public class Zeichnung

{

    private Quadrat wand;

    private Quadrat fenster;

    private Dreieck dach;

    private Kreis sonne;


    /**

     * Erzeuge ein Exemplar der Klasse Zeichnung

     */

    public Zeichnung()

    {

        // nichts zu tun hier, alle Exemplarvariablen werden automatisch

        // mit null initialisiert.

    }


    /**

     * Zeichne die Zeichnung.

     */

    public void zeichne()

    {

        wand = new Quadrat();

        wand.vertikalBewegen(80);

        wand.groesseAendern(100);

        wand.sichtbarMachen();


        fenster = new Quadrat();

        fenster.farbeAendern("schwarz");

        fenster.horizontalBewegen(20);

        fenster.vertikalBewegen(100);

        fenster.sichtbarMachen();


        dach = new Dreieck();  

        dach.groesseAendern(50, 140);

        dach.horizontalBewegen(60);

        dach.vertikalBewegen(70);

        dach.sichtbarMachen();


        sonne = new Kreis();

        sonne.farbeAendern("gelb");

        sonne.horizontalBewegen(180);

        sonne.vertikalBewegen(-10);

        sonne.groesseAendern(60);

        sonne.sichtbarMachen();



        for (int i=1; i<=200; i++)

        {sonne.langsamHorizontalBewegen = sonne.langsamHorizontalBewegen + i;

            sonne.langsamVertikalBewegen = sonne.langsamVertikalBewegen + i;




        }

    }






    /**

     * Ändere die Darstellung in schwarz-weiß.

     */

    public void inSchwarzWeissAendern()

    {

        if(wand != null)   // nur wenn schon gezeichnet wurde ...

        {

            wand.farbeAendern("schwarz");

            fenster.farbeAendern("weiss");

            dach.farbeAendern("schwarz");

            sonne.farbeAendern("schwarz");

        }

    }


    /**

     * Ändere die Darstellung in Farbe.

     */

    public void inFarbeAendern()

    {

        if(wand != null)   // nur wenn schon gezeichnet wurde ...

        {

            wand.farbeAendern("rot");

            fenster.farbeAendern("schwarz");

            dach.farbeAendern("gruen");

            sonne.farbeAendern("gelb");

        }

    }

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab keine Ahnung was Kreis für eine Klasse sein soll.

Woher hast du denn diese Klassen?

Hast du die selbst gemacht? Eigene Steuerelemente?

Aber wahrscheinlich wird Kreis eine Position Property haben. Damit bestimmst du, wo sich der Kreis befindet.

Die Ecke oben links hat die koordinate 0,0

Die unten Rechts hat das Maximum(also die Fenstergröße)

Das heißt wenn du x inkrementierst gehts nach rechts, bei y nach unten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Überprüf mal, ob es in der Klasse die Variable langsamHorizontalBewegen gibt oder ob sie manchmal anders heißt. Das ist ein klassischer Anfängerfehler. In dem Fall bekommst du an der Stelle den entsprechenden Kompilierfehler.

Wenn dein Programm abbricht oder gar nicht startet, poste bitte immer die ganze Fehlermeldung mit. Mit "funktioniert nicht" kommen wir nicht sehr weit.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...