# Kugelberechnung



## Hotflash (10. Mai 2017)

Hallo zusammen

Kann mir jemand sagen, was ich hier falsch habe?
Bekomme immer einen Error raus und weiss nicht wieso.
Danke und Gruss

import javax.swing.*;

public class Kugelberechnung4JOptionPane
{
public static void main(String[] args)
{
double r;
String unit, input;
input = JOptionPane.showInputDialog("Kugelradius eingeben:   ");
unit = input;
JOptionPane.showMessageDialog(null,"Umfang ="+(2*r*3.14159265359)+unit+"\Durchmesser = "+(2*r)+unit+"\Kreisfläche = "+(r*r*3.14159265359)+unit+"\Oberfläche = "+(4*3.14159265359*r*r)+unit+"\Volumen = "+(4/3)*3.14159265359*r*r*r);
}
}


----------



## VfL_Freak (10. Mai 2017)

Moin,


Hotflash hat gesagt.:


> Bekomme immer einen Error raus


aha ... und welchen ??? 

Du hast zwar eine Variable '_*r*_' deklariert aber nicht initialisiert oder sonstwie mit einem Wert belegt !

VG Klaus


----------



## Jardcore (10. Mai 2017)

Btw. Es gibt auch die Konstante PI (Math.PI)


----------



## Mülchmann (10. Mai 2017)

```
import javax.swing.*;

public class KugelBerechnung{
    public static void main(String[] args){
       
        String r;
       
        r = JOptionPane.showInputDialog("Kugelradius eingeben: ");
       
       
        double rad = Double.parseDouble(r);
        double umfang = 2 * rad * Math.PI;
        double durchmesser = 2 * rad;
        double kreisflaeche = Math.pow(rad,2) * Math.PI;
        double oberflaeche = Math.pow(rad,2) * Math.PI*4;
        double volumen = (4/3) * Math.PI * Math.pow(rad,3);
       
       
        JOptionPane.showMessageDialog(
            null,"Umfang = " + umfang
            + "\nDurchmesser = " + durchmesser
            + "\nKreisfläche = " + kreisflaeche
            + "\nOberfläche = " + oberflaeche
            + "\nVolumen = " + volumen
        );
    }
}
```


Hallo Hotflash,

so müsste es funktionieren.
Genau, wie es schon gesagt wurde, müsstest du der Variable r erst einmal einen Wert zuweisen, denn ansonsten ist sie nutzlos.
Zudem gibt es solche Hilfsmittel, wie Math.PI(ebenfalls schon angesprochen).
Mit diesen machst du dir dein Leben um ein Vielfaches einfacher, weshalb ich dir diese sehr ans Herz legen kann.


----------



## Jardcore (10. Mai 2017)

Vielleicht könntest du noch *rad* in "radius" ändern und *r* in "benutztereingabe" oder "eingabe".

genauso kannst du auch gleich

```
String eingabe = JOptionPane.showInputDialog("Kugelradius eingeben: ");
```
benutzten 
Durch einen statischen Import von PI könnte man auch noch das Math weglassen.


----------



## Mülchmann (10. Mai 2017)

Jardcore hat gesagt.:


> Vielleicht könntest du noch *rad* in "radius" ändern und *r* in "benutztereingabe" oder "eingabe"



wohl war, das hatte ich etwas umständlich gelöst.
danke dir für deinen Verbesserungsvorschlag


----------

