Java Subtraktion zweier Zahlen - Variable definieren
also das ist mein code und ich krieg als ausgabe halt immer 9 egal was ich eingebe, wie muss ich die zwei variablen erste_zahl und zweite_zahl definieren ? also ich weiß, dass ich da nicht einfach eine zahl reinschreiben darf, weil es ja eine variable ist...
import java.util.Scanner;
public class Subtraktion {
public static void main (String [] args){
Scanner sub = new Scanner(System.in);
double erste_zahl = 14;
double zweite_zahl = 5;
double ergebnis = erste_zahl - zweite_zahl;
System.out.println("Geben Sie eine Zahl ein: ");
double eingabedouble= sub.nextDouble();
System.out.println("Geben Sie eine weitere Zahl ohne Komma ein: ");
double eingabezweidouble= sub.nextDouble();
System.out.println("Das Ergebnis dieser Subtraktion ist: " + ergebnis);
}
}
3 Antworten
Okay, da mangelt es noch ordentlich an Verständnis.
Also: Programme werden von oben nach unten abgearbeitet. Wenn du das Ergebnis (Variable ergebnis) schon berechnest, bevor du die tatsächliche Eingabe hast, dann bekommst du natürlich ein konstantes Ergebnis, nämlich ergebnis (9) = erste_zahl (14) - zweite_zahl (5). Du musst das Ergebnis also berechnen, nachdem du die Eingabe einliest. Die Eingabe liest du über sub.nextDouble() ein und weist sie einer Variable eingabedouble, bzw. eingabezweidouble zu. Das Ergebnis ergibt sich aus der Subtraktion dieser beiden Zahlen und nicht aus den ersten beiden Konstanten erste_zahl und zweite_zahl. Nach der Eingabe musst du also double ergebnis = eingabedouble - eingabezweidouble berechnen und ausgeben.
Das mag uns bewusst sein, aber ich glaube luxuryX1 war/ist das nicht so ganz klar, daher die Erwähnung. ;)
Vllt gehört luxury zu denen, die sich von Variablen nur verwirren lassen und besser mit Registern programmieren lernen würden...?
Hochsprachen verwirren eben nur --> Streiche JAVA, setze Assembler
lach. Da würde Freude bei den Schüler_innen aufkommen! ;)
Und wenn's mit Assembler auch nichts wird, dann schreibt man das Programm einfach in binärer Form. Keine Klassen keine Variablen oder konstanten, keine Methoden... einfach nur Nullen und Einsen, einfacher gehts doch gar nicht mehr ^^
ja sorry :( ich hab wirklich null ahnung von programmiern
Evtl. hilft es dir ja etwas weiter, wenn du deinen Quellcode mit Kommentaren ausstattest, dann kannst du selber nochmal schriftlich festhalten, was du da eigentlich grade machst.
Das könnte dann z.B. so aussehen:
public static void main (String [] args){
// hier erstelle ich eine Variable, in der ich
// das speichern kann, was ich in die Konsole eingebe
Scanner sub = new Scanner(System.in);
// hier erstelle ich eine Variable und weise ihr den Wert "14" zu
double erste_zahl = 14;
// hier erstelle ich eine weitere Variable und weise ihr den Wert "5" zu
double zweite_zahl = 5;
// hier subtrahiere ich den Inhalt von "erste_zahl" (14) und den Inhalt
// der Variable "zweite_zahl" (5) und weise der erstellten Variable
// "ergebnis" das Ergebnis der Subtraktion (9) zu
double ergebnis = erste_zahl - zweite_zahl;
// hier gebe ich Text aus
System.out.println("Geben Sie eine Zahl ein: ");
// hier kann ich einen Wert in die Konsole eingeben
// und das was ich eingegeben habe wird in die Variable
// "eingabedouble" gespeichert
double eingabedouble= sub.nextDouble();
// hier gebe ich wieder Text aus
System.out.println("Geben Sie eine weitere Zahl ohne Komma ein: ");
// hier kann ich wieder einen Wert in die Konsole eingeben
// und das was ich eingegeben habe wird diesmal in die Variable
// "eingabezweidouble" gespeichert
double eingabezweidouble= sub.nextDouble();
// hier gebe ich einen Text und den Inhalt der Variable "ergebnis" (immer noch 9) aus
System.out.println("Das Ergebnis dieser Subtraktion ist: " + ergebnis);
}
Ich würde dir empfehlen, den Quellcode mal in einem Editor zu betrachten, der das auch alles farblich ein wenig hervorhebt (für einen besseren überblick)
9 ist doch richtig..?
Dein Text klingt als willst du:
Scanner sub = new Scanner(System.in);
double ergebnis;
System.out.println("Geben Sie eine Zahl ein: ");
double eingabedouble= sub.nextDouble();
System.out.println("Geben Sie eine weitere Zahl ohne Komma ein: ");
double eingabezweidouble= sub.nextDouble();
ergebnis = eingabedouble - eingabezweidouble;
System.out.println("Das Ergebnis dieser Subtraktion ist: " + ergebnis);
}
Verstehst du, was jetzt der Unterschied ist?
Da oben wurde vollkommen korrekt 9 ausgegeben, weil du 14-5 gerechnet hast...
Lass dich von dem "Code" nicht verunsichern, versuche den Sinn jedes Ausdrucks zu verstehen, dann hilft dir der gesunde Menschenverstand.
Ich kann auch kein Java ;)
Jup. Der Computer macht genau das, was du ihm sagst, und nichts anderes. Wenn du allerdings das was du ihm sagst selbst nicht verstehst, dann wird's problematisch ;)
Besorg dir besser mal ein gutes Buch das dir nicht nur im Fachidioten-Stil die Syntax einer Programmiersprache erläutert, sondern dir obendrein das "Programmieren" von Grund auf erklärt. Mit Tutorials aus dem Netz kommt man mangels Vollständigkeit meist nicht weit, da ist das Geld für ein etwas teureres Fachbuch durchaus gut angelegt wenn's einem ernst ist.
Stimmt schon was du sagst, aber in dem Beispiel oben wäre die Reihenfolge auch vollkommen irrelevant, da es verschiedene Variablen sind "erste_zahl" und "eingabedouble" ;)