2 falsche Semikolons?
Hallo allerseits,
ich wollte einen Code schreiben, in dem der Nutzer Radius und Höhe eingeben kann, damit er am Ende ein Ergebnis mit Volumen und Oberfläche erhält. Leider sagt er mir nur, dass 2 Semikolons erwartet werden, die komplett schwachsinnig sind. Wo habe ich etwas falsch gemacht?

4 Antworten
Meinst du Semikolon?
Jedenfalls fehlt in Zeile 8 und Zeile 10 ein "=" nach den Variablennamen.
Deshalb wird wohl gedacht, die Zeilen müssten nach den Variablennamen enden, weshalb halt 2 Semkolons erwartet werden. Mach da mal Gleichheitszeichen dazwischen.
PI ist ein statisches Feld der Klasse Math. Dafür benötigst du einen Static Import
import static java.lang.Math.PI;
Die Meldung, dass in diesem Falle Semikolons fehlen kommt daher, dass der Compiler eine Annahme darüber trifft, was du eventuell machen wolltest, oder wie der Code zumindest valide wird.
int r; scanner.nextInt();
int h; scanner.nextInt();
Obiger Code hat zwar die von der Fehlermeldung gemeinten Semikolon gesetzt und ist syntaktisch durchaus richtig, hat aber mit der gewünschten Funktionalität nichts mehr zu tun. In diesem Falle würdest du r und h als int deklrarieren und 2 Abfragen auf der Konsole tätigen, deren Inhalt du verwirfst.
int r = scanner.nextInt();
int h = scanner.nextInt();
Obiger Code ist der, den du eigentlich willst. Da der Compiler das aber nicht genau wissen kann was du willst, nimmt er die einfachste Möglichkeit die er hat den Code valide zu machen.
Ein Double hat einen viel größeren Wertebereich als ein Integer. Beim umwandeln kann halt was verloren gehen. Du kannst das entweder ignorieren oder statt deiner Integer auch einfach Double erstellen als Variablen und auch eine Double zurückgeben.
Nene, sorry, ist ja die Main Methode. Ja, du hast keinen Rückgabewert, das void bleibt. Du gibst ja immer nur über die Konsole aus, bzw. du printest deine Ergebnisse ja.
Du machst dann einfach aus den "int h" und "int r"
"double h" und "double r"
Also, int steht für Integer, das sind ganze Zahlen ohne Nachkommastelle. Pi ist eine Zahl, die irrational ist, sie ist prinzipiell unendlich lang, ohne sich dabei zu wiederholen, ohne eine Periode.
Die Zahl Pi ist offenbar in Java eine double, Double steht, meine ich, für double precision float. Es ist also im Grunde eine float Zahl, das sind die Zahlen, die Nachkommastellen haben (in Java). Double ist dabei eine float, die einen wesentlich größeren Wertebereich abdeckt.
Wenn du nun Pi hast, die eine Double ist und du das ganze in einen Integer umwandelst, bleibt von Pi nur noch die 3 vor dem Komma. Somit ist alles, was du damit rechnest, einfach falsch.
Durch benutzen von Double als deine Variablen verhindest du diese sehr schlimmen Rundungsfehler.
Ich hoffe, ich konnte es einigermaßen erklären.
Du hast die int variable r und h falsch initialisiert. So geht es:
int r=scanner.nextInt();
Da steht nichts mit Silikonen. Also kann das Programm etwas mit Silikonen auch nicht anzeigen.
Ne, da fehlen die gleichzeichen und keine Semikolons. Die ide's sagen dirRecht oft dass Semikolons fehlen wenn du Quark geschrieben hast.
Ja, Semikolon sry ^^. Ich habe es gemacht und sehe, dass der Import von lang.Math nicht klappt, was habe ich falsch gemacht/kann ich besser machen`?