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.

Empfohlene Antworten

Veröffentlicht

Hye All!

Mein Junior beginnt in der Schule gerade mit Java und hat unten stehenden Code von der Tafel abgeschrieben.

Wir haben nun das JDK herunter geladen und ein kleines Programm erfolgreich getestet, etc. aber bei diesem Programm "Kreis" funktioniert der Befehl

radius = console.read double ("Radius: ");

nicht!

==>> Bitte um Info: Wie schreibt man den Befehl korrekt?

Habe schon Vieles ausprobiert und gegoogelt ... aber ohne Erfolg. Bin selbst kein Programmierer (habe vor 20 Jahren mal kurz Pascal gelernt aber das war's auch schon) sondern mitlernender Daddy ...

D A N K E !

--------------------------------------------------------------

public class Kreis

{

public static void main (String[] args)

{

double radius;

double flaeche;

radius = console.read double ("Radius: ");

flaeche = radius*radius*Math.PI;

System.out.println (" Gewaehlter Radius [m]: " +radius);

System.out.println (" Kreis-Flaeche [m2]: " +flaeche);

}

}

-----------------------------------------------------------

Da wird Dein Junior wahrscheinlich nicht alles mitgeschrieben haben. :)

Es sind auch gleich mehrere Fehler im Quellcode. Die Methode wird nicht "read double" heißen, sondern wahrscheinlich "readDouble". Im JDK gibt es keine Klasse "console", deshalb schätze ich, in der Schule verwenden sie eine Hilfsklasse namens "console" mit der statischen Methode readDouble(String) (-> höchst unschön, weil der Klassenname gegen Java Konventionen verstößt), oder es gibt in der Schule in der Klasse mit der main-Methode eine Instanzvariable (oder Klassenvariable) namens "console" mit der genannten Methode (nicht statisch, die bessere Variante).

Peter

Also zum einen dürfte es nicht funktionieren, weil in einem Funktionsnamen keine Leerzeichen enthalten sein dürfen. Das heißt, der Funktionsname müsste eher "readdouble()" oder "read_double()" heißen.

Zum anderen gibt es in der Standardbibliothek von Java die Bezeichnung "console" nicht. Ich denke mal, da das Einlesen von Werten aus der Kommandozeile für Anfänger nicht gerade trivial ist, dass dies eine Klasse sein wird, die in der Schule deines Sohnes zur Verfügung gestellt wird. Das wiederrum bedeutet, solange ihr die Klassen dafür nicht mit nach Hause bekommen habt, wird der Quelltext bei euch zu Hause auch so nicht funktionieren.

Herzlichen Dank, kingofbrain und Dragon8 !

Die Erklärungen sind (sogar für mich ;-) verständlich.

Ich habe es mit radius = 10 probiert und das funktioniert dann (für Euch sicher logisch "no na ned", für mich ein schöner Erfolg).

Habe dann auch zwischenzeitlich von einem im Netz gefundenen "Hilfsprogramm" abgeschrieben - natürlich ohne es genau zu verstehen - aber die Eingabe funktioniert nun (wie unten angeführt).

Aber dieser "Scanner" funktioniert nur mit der Eingabe von ganzen Zahlen.

Gibt es eine Funktion, die auch die Eingabe von Zahlen mit Kommastelle erlaubt??

Wie müsste man das schreiben???

DANKE nochmals!

Das funktioniert für die Eingabe von GANZEN Zahlen:

------------------------------------------------------------

import java.util.Scanner;

import java.io.IOException;

public class Kreisiges_3

{

public static void main (String[] args)

throws IOException

{

double radius;

double flaeche;

Scanner scanner = new Scanner(System.in);

System.out.println ("Bitte Radius [m] eingeben (nur ganze Zahlen erlaubt): ");

radius = scanner.nextInt();

flaeche = radius*radius*Math.PI;

System.out.println (" Gewaehlter Radius [m]: " +radius);

System.out.println (" Kreis-Flaeche [m2]: " +flaeche);

}

}

------------------------------------------------------------

Servus nochmal,

hier mal Deine Lieblingsseite der nächsten Zeit, sofern Du mit Java weitermachen willst: Java Platform SE 6

Dort findest Du die Dokumentation zu den Klassen im JDK 6 (wenn Du ein anderes verwendest, einfach nach der passenden Doku suchen). Enthalten ist natürlich auch die Dokumentation der Klasse Scanner (damit Du Dein abgetipptes Beispiel verstehst) und deren Methoden (z.B. nextDouble()), damit Du auch Fließkommazahlen berechnen kannst.

Viel Spaß (einmal programmieren, immer programmieren, oder? ;) )!

[EDIT]

Ach ja, für die nächsten Posts kannst Du die schönen CODE-Tags verwenden, damit Dein Quellcode auch gut lesbar ist.

[/EDIT]

Peter

Servus Peter,

werde mir das mal anschauen - und Du hast richtig erkannt, das Programmieren reizt mich jetzt wirklich ein wenig ... werde beim Thema also sicher mit dabei bleiben! ... :-))

Ich werde den Benutzer "Java-Neuling" auch an meinen Junior weiter geben, da kann er sich zukünftig bei Fragen dann im Forum auch selbst direkt einwählen.

Schönen Tag noch!

Tom

Vielen Dank für den Tipp, flashpixx!

Habe das Werk bereits down geloaded und es ist wirklich super zu verstehen! Auch die darin enthaltenen Beispiele sind sehr wertvoll.

Das "Kreis-Programm" ist inzwischen toll gewachsen (mit mathemat. Runden der ausgegebenen Werte, Fehlerausgabe wenn eine negative Zahle eingegeben wird, etc.) ... macht Spaß, sich im Urlaub damit zu befassen! (Wenn der Nachwuchs heute von der Schule nach Hause kommt wird er Augen machen :-)))

LG

tom

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.