Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Float mit null vergleichen

Empfohlene Antworten

Ich sitze hier an einer Aufgabe aus meiner Info-Probeklausur und komme einfach nicht auf die Lösung. Vielleicht kann mir ja jemand weiterhelfen.

Die Aufgabe lautet folgendermaßen:

Schreiben Sie eine Klassen-Methode fillArr, die unter Verwendung

des Aufrufs T.readZahl() von Tastatur gelesene Float-Werte in dem

als Parameter übernommenen Array arrFloat in Indexfolge ablegt,

solange nicht [durch Strg z] der Wert null erzeugt wurde [und der

Array nicht voll ist]. Zurückgegeben wird als int-Wert der Füll-

stand des Array [Anzahl der erfassten Float-Werte].

Mein Lösungsansatz:

static int fillArr(float[] arrFloat, int arrIndex) {

for (float zahl = 0F; zahl != null && arrIndex < arrFloat.length; zahl = t.readZahl())

{arrIndex++;

arrFloat[arrIndex] = zahl;

}

return arrIndex;

}
Wenn ich die Aufgabe richtig verstanden habe, kann man mit Strg+Z bei der Eingabe ein null erzwingen. Aber wie kriege ich dann heraus, dass die Float-Variable diesen Wert hat? Bei meiner Lösung bekomme ich von Eclipse eine Fehlermeldung, dass der Vergleich
zahl != null

nicht erlaubt ist (Die genaue Fehlermeldung kann ich euch jetzt nicht mitgeben, weil ich hier kein Eclipse und zuhause im Mom kein Inet habe).

Oder habe ich das mit Strg+Z falsch verstanden?

Bin für jeden Tipp dankbar.

Und noch als Ergänzung, wie Du zu einem Objekt kommst.

Float f = new Float(primitiveFloat);

Peter

Ich hab mir jetzt mal die Klasse Float in der API angeschaut.

Ich bin mit Java und der API nicht so vertraut, weil ich (leider) nur im Studium Java programmiere, daher verstehe ich eine Sache nicht so wirklich:

Im Text steht "An object of type Float contains a single field whose type is float." Darunter in der Field Summary sind aber ganz viele Felder. Für mich als Laie irgendwie verwirrend...

Außerdem finde ich den Namen des Feldes nicht, das den primitiven Float enthält. Den Namen brauche ich doch, um auf dieses Feld zugreifen zu können, oder kann ich einfach mit

Float zahl = new Float(1F);

zahl = 2F;

neue Werte zuweisen?

Lacht nicht, ich bin ja lernwillig ;)

dein array sollte vom typ Float (nicht float) sein.

Float f = 2F;

float flo = f;

funktioniert als zuweisung.

die statischen felder sind die maximalwerte die ein Float annehmen kann und noch ein paar andere spielereien.

Servus,

auf das Feld mit dem Inhalt willst Du nicht direkt zugreifen, aber Du kannst Dir den Inhalt über longValue() besorgen. Schreiben tust Du entweder über den Konstruktor oder über static Float valueOf(float f).

Die Felder, die Du siehst, sind im Endeffekt nur Konstanten mit Werten, die man immer wieder mal braucht, aber keine klassische Eigenschaft eines Float-Objekts, wie eben der Inhalt. In der API-Doc siehst Du das Feld übrigens nicht, weil die API-Doc normalerweise nur die public und protected (also die (halb)öffentlichen) Schnittstellen dokumentiert. Das Feld wird aller Wahrscheinlichkeit nach private sein.

Denk dabei an einen der Grundzüge der OOP: Kapselung. Die Eigenschaften einer Klasse sollen nicht zugänglich sein, bzw. nur über Nachrichten, die man dem Objekt schicken kann. Genau das wird hier gemacht.

[EDIT]

funktioniert als zuweisung.

Nur unter Java 1.5, wegen Autoboxing. Unter 1.4 (noch recht verbreitet) geht das nicht.

[/EDIT]

Peter

Dann sind jetzt alle Unklarheiten beseitigt, danke :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.