in for-Schleife deklarierte Variablen erhalten?

Dieses Thema in for-Schleife deklarierte Variablen erhalten? im Forum "Java Basics - Anfänger-Themen" wurde erstellt von Fylgja, 6. Nov. 2011.

Thema: in for-Schleife deklarierte Variablen erhalten? Hej! Ich muss bis Dienstag noch 2 Programme schreiben, und da ich, nachdem ich heute den ganzen Tag davor saß,...

  1. Hej!

    Ich muss bis Dienstag noch 2 Programme schreiben, und da ich, nachdem ich heute den ganzen Tag davor saß, nicht so richtig weitergekommen bin, wollt' ich hier mal um Hilfe fragen!

    Mein Problem ist, dass ich einer Variable in einer for-Schleife einen Wert zuweise, den ich hinterher noch weiterverarbeiten will. Aber wenn die Schleife zu Ende ist, verliert die Variable diesen zugewiesenen Wert ja wieder. Kann man das irgendwie umgehen?
    Dann könnte ich die Aufgaben, denke ich, relativ problemlos lösen. Aber daran scheitert's im Moment :/

    Ich hoffe mal, ihr wisst, was ich meine, und schonmal danke für die Hilfe :)
     
  2. Schau mal hier --> hier klicken (Klick)
    Dort wirst du fündig!
  3. Ziemlich simpel - sofern ich dich richtig verstanden habe. Du musst die Variable einfach außerhalb der for Schleife deklarieren.
     
  4. Deklariert habe ich sie ganz am Anfang. Aber in der Schleife wird ihr Wert dann verändert, den ich hinterher noch brauche. Also wenn z.B. x in der Schleife auf 3 kommen würde, wäre es dann nach der Schleife immernoch bei 3? :>

    Mh und die Schleife an sich will grade auch nicht :/

    Also die Aufgabe ist, ein Programm zu schreiben, dass nach Eingabe einer Gleitkommazahl diese in 32-bit Darstellung wieder ausgibt.

    Ich will erstmal mit positiven Zahlen anfangen und dafür das Vorzeichen drucken. Dann mit der for-Schleife will ich den richtigen Exponenten finden der mit der while-Konstruktion darunter in Binärcode umgewandelt werden soll (ist nur bisher leider rückwärts und macht keine 8 Zeichen, wie es eigentlich sollte.)

    Ich habe bisher:

    Code (Java):
         float zahl = IO.readFloat ("Bitte eine Gleitkommazahl: ");
         int exponent = 0;
         float mantisse;
         float f;
         int potenz = 1;

         if (zahl > 0) {
         IO.print ("0");

         for (potenz = 1; potenz <= zahl; potenz = 2 * potenz) {
          if (potenz <= zahl) {
          exponent = exponent + 1;
          IO.print ("Exponent: " + exponent);

          }
           while (exponent != 0)  {
             if (exponent % 2 == 0) IO.print("0");
             else IO.print ("1");
             exponent = exponent / 2;
           }
         }
         }
     
    Irgendwie will die for-Schleife gerade auch nicht funktionieren. Wenn ich mir da direkt den Exponenten ausgeben lasse, kommt immer nur 1 raus :/

    Ach man.
     
  5. Darfst Du Float.toIntBits und Integer.toBinaryString benutzen? Dann wäre es ein Zweizeiler.
    Code (Java):

    public static void outputFloatBits(final float f) {
      final int intBitsOfFloat = Float.toIntBits(f);
      System.out.println(Integer.toBinaryString(intBitsOfFloat);
    }
     
    Bei solchen Aufgaben ist ein Blick in die API-Dokumentation evtl. passender Klassen (hier also Float) immer eine gute Idee (es sei denn, der Prof verbietet das :-( ).

    //Edit: Integer.toBinaryString gibt evtl. führende Nullen in der Bitfolge nicht aus. Ggf. musst Du also überprüfen, ob der String die length 32 hat und notfalls noch die entsprechende Anzahl Nullen vorne dran basteln.
     
    Zuletzt von einem Moderator bearbeitet: 6. Nov. 2011
  6.  
    Zuletzt bearbeitet: 6. Nov. 2011
  7. Gut, es funktioniert jetzt auf jeden Fall, ich hatte da wohl irgendwie 'nen Denkfehler.
    Danke aber ;)

    Ich setz' mich da dann gleich oder morgen nochmal dran. Und in der Zwischenzeit versuche ich rauszufinden, warum mein anderes Programm behauptet, 77 sei eine Primzahl^^

    Aber so bin ich schonmal ein bisschen weiter, danke! :)
     
  8. Der Übungseffekt wäre, sich mit der API-Dokumentation auseinanderzusetzen und dort vielleicht was zu finden, was man benutzen kann. Das ist eine Kompetenz, die einem dann später bei der Benutzung sämtlicher auch externer Libraries (z.B alles von Apache commons) hilft.

    Und seit Java Open Source ist, kann man sich ja den Quellcode der vorgeschlagenen Methoden anschauen. Das Lesen (und hoffentlich Nachvollziehen) bestehenden Codes kann ja auch den gewünschten Lerneffekt haben.

    Wenn es natürlich nur darum geht, Schleifen zu üben, dann hast Du Recht. Dann sollte man als Prof aber auch Übungen nehmen, wo genau das geübt wird. Sprich, wo man ganz schnell sieht, ob man was falsch gemacht hat. Nur für das Üben von Schleifen, ist dieses Beispiel viel zu überfrachtet mit anderen -zumindest am Anfang- komplizierten Fragestellungen. Aber lassen wir das... über das didaktische Konzept von faulen Profs brauchen wir hier ja nicht zu schwadronieren.
     
  9. Kostenlose Java-Grundlagen DVD im Wert von 29,95 € heute kostenlos sichern (Klick)
Die Seite wird geladen...

in for-Schleife deklarierte Variablen erhalten? - Ähnliche Themen

Forum Datum
Iteratorschreibweise der for-Schleife Hausaufgaben 21. Mai 2016
Frage zur verschachtelten for-schleife Java Basics - Anfänger-Themen 16. März 2016
Geschachtelte for-schleife beenden Java Basics - Anfänger-Themen 14. Jan. 2016
Potenzieren mit for-Schleife Java Basics - Anfänger-Themen 2. Dez. 2015
For-Schleifen unterschied? Hausaufgaben 15. Nov. 2015
Interessante Stellenangebote


Weitere Stellenanzeigen

Stellenanzeige Mediadaten