Frage von ALOin, 42

Hilfe bei Java Basics?

Ich hab mir heute einbischen Java angeguckt aber bin noch ein blutiger Anfänger.

Kann mir jemand sagen warum dies nicht Funktioniert : package bremsweg;

import javax.swing.JOptionPane;

public class Bremsweg {

public static void main(String[] args, Object x) {




int za = 2;
String ge = JOptionPane.showInputDialog("Gib deine Geschwindigkeit an: ");
Integer.parseInt(ge);
x = ge / za;
    
                                        
            
    JOptionPane.showMessageDialog(null,"Du bremst in " + x);
                                                    

}}

Danke im Vorraus

Antwort
von TUrabbIT, 23

Also ohne die Fehlermeldung zu kennen, denke ich:

Die Zeile x= ge/za kann so nicht funktionieren oder zumindest schwerlich so wie du es möchtest.

ge ist ein String während za ein int ist und x ist von dem Supertyp Object.

x sollte vom Typ int sein.
Du musst den Wert von Integer.parseInt(ge) auch wieder in ge speichern.


Kommentar von PerfectMuffin ,

Du musst den Wert von Integer.parseInt(ge) auch wieder in ge speichern.

Wtf

Kommentar von TUrabbIT ,

Ja habe vergessen zu erwähnen, das der Wert natürlich in eine int Variable gespeichert werden müssen.

Zuviel Python in letzter Zeit...

Antwort
von Borgler94, 10

1. du darfst der main-Methode nur ein Argument übergeben, nämlich String[] args (du kannst es auch anders benennen)

2. es kann vorkommen dass der Benutzer etwas falsches eingibt, daher würde ich es folgendermaßen lösen

public class Test {

public static void main(String[] args) {

double faktor = 2.3123;

// keine Ahnung, ob dein x der bremsweg sein soll, ich nenns einfach so
// Komma mit "." eingaben, nicht mit ","
double bremsweg = getDoubleNumber() / faktor;

// rundet auf 2 Kommastellen
JOptionPane.showMessageDialog(null, "Du bremst in " + bremsweg + " Sekunden");
}

public static double getDoubleNumber() {
String eingabe = JOptionPane.showInputDialog("Gib deine Geschwindigkeit an: ");

try {
  return Double.parseDouble(eingabe);
} catch (NumberFormatException | NullPointerException e) {
  JOptionPane.showMessageDialog(null, "ungültige Eingabe");
  return getDoubleNumber(); // ruft sich selber auf bei ungültiger Eingabe
}

}

}

PS.. der Code-Tag mag gerade nicht ;)

kannst in Eclipse ja mal strg+umschalt+f drücken zum formatieren

Antwort
von PerfectMuffin, 14

Du missverstehst, wie Funktionen funktionieren.

Ja, Integer.parseInt() konvertiert einen String in einen Integer, das zu machen hat aber keinen Effekt auf den String, der bleibt erhalten und ändert erst recht nicht seinen Typ. Der Ausdruck mit Integer.parseInt liefert dann einfach einen int-Wert zurück.

String five="5";
Integer.parseInt(five);

Ist letztendlich das gleiche wie

String five="5";
5;

Was offensichtlich sinnfrei ist.

Keine passende Antwort gefunden?

Fragen Sie die Community