Java-Forum.org  

Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen: in for-Schleife deklarierte Variablen erhalten?

Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 05.11.2011, 23:05   #1
Fylgja
 
in for-Schleife deklarierte Variablen erhalten? - Standard 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ß, 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
 

 
Anzeige
 

AW: in for-Schleife deklarierte Variablen erhalten?



 
Alt 05.11.2011, 23:17   #2
Camill
 
in for-Schleife deklarierte Variablen erhalten? - Standard AW: in for-Schleife deklarierte Variablen erhalten?

Ziemlich simpel - sofern ich dich richtig verstanden habe. Du musst die Variable einfach außerhalb der for Schleife deklarieren.
 
Alt 05.11.2011, 23:30   #3
Fylgja
Themenstarter
 
in for-Schleife deklarierte Variablen erhalten? - Standard AW: in for-Schleife deklarierte Variablen erhalten?

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:

Java Code: Quelltext in neuem Fenster öffnen
  1. float zahl = IO.readFloat ("Bitte eine Gleitkommazahl: ");
  2.      int exponent = 0;
  3.      float mantisse;
  4.      float f;
  5.      int potenz = 1;
  6.  
  7.      if (zahl > 0) {
  8.      IO.print ("0");
  9.  
  10.      for (potenz = 1; potenz <= zahl; potenz = 2 * potenz) {
  11.       if (potenz <= zahl) {
  12.       exponent = exponent + 1;
  13.       IO.print ("Exponent: " + exponent);
  14.  
  15.       }
  16.        while (exponent != 0)  {
  17.          if (exponent % 2 == 0) IO.print("0");
  18.          else IO.print ("1");
  19.          exponent = exponent / 2;
  20.        }
  21.      }
  22.      }

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.
 
Alt 05.11.2011, 23:45   #4
 
in for-Schleife deklarierte Variablen erhalten? - Standard AW: in for-Schleife deklarierte Variablen erhalten?

Darfst Du Float.toIntBits und Integer.toBinaryString benutzen? Dann wäre es ein Zweizeiler.
Java Code: Quelltext in neuem Fenster öffnen
  1. public static void outputFloatBits(final float f) {
  2.   final int intBitsOfFloat = Float.toIntBits(f);
  3.   System.out.println(Integer.toBinaryString(intBitsOfFloat);
  4. }
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.
 
Alt 06.11.2011, 09:03   #5
langhaar!
 
in for-Schleife deklarierte Variablen erhalten? - Standard AW: in for-Schleife deklarierte Variablen erhalten?

Zitat: nillehammer
Beitrag anzeigen
Darfst Du Float.toIntBits und Integer.toBinaryString benutzen? Dann wäre es ein Zweizeiler.
[JAVA]
Das kann ich mir nicht als Sinn einer Übung vorstellen; es hätte keinen Übungseffekt

Zitat: Fylgja
Beitrag anzeigen
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? :>
Du gibts in der Schleife eine Bedingung an und die Schleife wird so oft ausgeführt, wie die Bedingung erfüllt ist. Ergo ist die Bedingung nach Beendigung der Schleife nicht mehr erfüllt.

Java Code: Quelltext in neuem Fenster öffnen
  1. int i = 0;
  2. for (; i < 10; i++) {
  3. ...}

Die letzte Zahl in der Schleife ist 9, nachher ist i = 10.
Wenn du Zwischenwerte der Schleife benötigst, so musst du diese speichern.

Wenn du letzen Wert der Schleifenvariable haben willst, so kannst du die letzte Operation rückgängig machen. Also in diesem Beispiel i--.
 
Alt 06.11.2011, 20:12   #6
Fylgja
Themenstarter
 
in for-Schleife deklarierte Variablen erhalten? - Standard AW: in for-Schleife deklarierte Variablen erhalten?

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!
 
Alt 07.11.2011, 13:08   #7
 
in for-Schleife deklarierte Variablen erhalten? - Standard AW: in for-Schleife deklarierte Variablen erhalten?

Zitat: langhaar!
Das kann ich mir nicht als Sinn einer Übung vorstellen; es hätte keinen Übungseffekt
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.
 
Antwort    

Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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

Schleife mit variablen
Schleife mit variablen: Hallo, ich möchte mit einer For Schleife etwas zeichnen lassen. Das ist auch nicht das Problem, aber wie kann ich in der Schleife einer Variable immer einen steigenden Wert zuweisen. Also in...
Wie behalten Variablen den Wert, den sie in einer anderen Methode erhalten haben?
Wie behalten Variablen den Wert, den sie in einer anderen Methode erhalten haben?: Hallo, ich habe folgendes Problem. Ich habe in meinem Programm 3 Metoden mit jeweils geschachtelten for-Schleifen und eine Methode, die die Werte der Variablen kontrolliert, die in den Methoden...
Deklarierte Variable?
Deklarierte Variable?: Hallo,wenn ich eine Variable deklariere. int x; welchen Wert hat diese wenn ich sie nicht initialisiere?
Variablen in Schleife erzeugen
Variablen in Schleife erzeugen: Hallo mal ne Frage eines dummen Anfängers: Kann man Variablen in einer Schleife automatisch erzeugen lassen? Also z.B. 30 int Variablen mit dem namen ax wobei x eine Zahl von 1-30 ist? Wenn das...
50 Variablen in Schleife initialisieren
50 Variablen in Schleife initialisieren: Hi, ich brauche für ein Programm 50 variablen vom typ int. Und zwar von n01 bis n50. Jetzt könnt ich 50 mal hinschreiben das mir die Variablen initialisiert werden, aber es müsste doch auch...




Sie betrachten gerade in for-Schleife deklarierte Variablen erhalten?