Der Grund warum es nicht funktioniert ist, dass du versuchst due Strings auf Identität mit == zu vergleichen. Man muss stattdessen String#equals(Object other) verwenden.
Die Gründe warum der Code ziemlich gruselig ist, sind vielfältiger... :roll:
-"Rech" ist ein extrem nichtssagender Bezeichner
-Was die Klasse "Rech" überhaupt tun soll, und warum sie Argumente der Berechnung in einem Konstruktor (??) übergeben bekommt ist schleierhaft
-Variablennamen schreibt man klein, das trifft auf "Erg" auch zu
-Was soll diese Variable sein? schmeiß die raus
-Was soll dieser ganzer "t","l","m",...,"x","y","z"-Salat in der main? entferne überflüssige Variablen, das was gebraucht wird solltest du sinnvoll benennen.
erstmal danke ich hab die Variablen und den den namen der klasse geändert.
aber wie der vergleich mit equals funktioniert hab ich noch nicht ganz verstanden hättet ihr mal nen beispiel?
String r=dialog... //irgendwie den operator einlesen
if(r=="+"){
//wird niemals zutreffen, auch wenn die eingabe auch wie "+" aussieht
}
//stattdessen:
String r=dialog... //irgendwie den operator einlesen
if("+".equals(r)){
//wird ausgeführt falls die eingabe auch wie "+" aussieht
}
Danke, danke jetzt gehts...
Du sagtest ja dass das mit dem Konstruktor blödsinn ist.
Wie hätte ich es denn sonst machen können?
Sry bin noch totaler anfänger, habs bisher nur mit Konst. gelernt
Also mein Code sieht jetzt so aus und funtzt:
Naja, es ist imho einfach keine besonders sinnvolle Aufteilung, aber das ist auch ein sehr kurzes Programm. Da es zu Übungszwecken geschrieben ist, kann man da auch nicht erwarten, dass es etwas ausgesprochen sinnvolles tut Deshalb kann man auch nicht erwarten, dass es irgeneine sinnvolle Struktur aufweist, weil das einfach kein besonders "realistischer" anwendungsfall ist. Solang's funktioniert ist es also ok, zum über der Syntax reicht's jedenfalls aus, also erfüllt es den Sinn.
Ich werd das ganze jetzt noch um Prozentrechnung usw. erweitern...
Wie kann ich denn eigentlich einen Frontend also zb eine Taschenrechneroberfläche machen?
Da könnte ich erstmal empfehlen, irgendwas für den Einstieg durchzulesen, etwa sowas, und ein Blick in die tutorials von Sun zu werfen. Aber Warnung: diese ganze Swing-Geschichte ist ziemlich allgemein gehalten, und dadurch nicht allzu simpel aufgebaut, da muss man sich ein wenig durchbeißen, bis man was vernünftiges rausbekommt. Ist vielleicht daher eher weniger interessant für den Anfang.
Dieses Paste2 dings sieht ziemlich hübsch aus, solche code tags würden hier auch nicht schaden
Danke für den Tipp nur bringt das mit dem Buch nichts ich bin gerade in einer Ausbildung zum technischen Informatiker
Java gehört zur Ausbildung von daher würde mich das denk ich mal nur durcheinander bringen
Danke für den Tipp nur bringt das mit dem Buch nichts ich bin gerade in einer Ausbildung zum technischen Informatiker
Java gehört zur Ausbildung von daher würde mich das denk ich mal nur durcheinander bringen
Ja nur das Problem ist das uns der Lehrer dort das ganze ander erklärt als es in diesem Buch steht, ein generelles Java Buch habe ich ja auch, nur meint mein Lehrer auch ,dass das was in den Büchern steht schrott is(klingt komisch meint er aber so) er hat sogar selbst ein Buch zu Java geschrieben.
Nen Link kann ich leider nicht posten wir haben das Buch von ihm als Word Doc bekommen. Ein Deckblatt is da leider nicht dabei von daher kann ich auch nicht sagen wies heisst.
Aber die Copyrights hat er dran.
So jetzt hab ich den Kompleten Code neugeschrieben und nun interessierts mich was du nun davon hältst?
Code:
import javax.swing.JOptionPane;
public class TRechner {
/**
* @param args
*/
public static void main(String[] args) {
String x=new String();
String y=JOptionPane.showInputDialog("Bitte MWS, OMWS, +, -, * oder / eingeben:");
if("MWS".equals(y)){
String z=JOptionPane.showInputDialog("Bitte den Betrag eingeben:");
int z1=Integer.parseInt(z);
int erg;
erg=z1/100*19+z1;
JOptionPane.showMessageDialog(null, "Der Betrag inkl. MWS lautet: € "+erg);
}
else
if("OMWS".equals(y)){
String z=JOptionPane.showInputDialog("Bitte den Betrag eingeben:");
int z1=Integer.parseInt(z);
int erg;
erg=z1/100*19;
erg=z1-erg;
JOptionPane.showMessageDialog(null, "Der Betrag exkl. MWS lautet: € "+erg);
}
else
if("+".equals(y)){
String z=JOptionPane.showInputDialog("Bitte die erste Zahl eingeben:");
String zz=JOptionPane.showInputDialog("Bitte die zweite Zahl eingeben:");
int z1=Integer.parseInt(z);
int z2=Integer.parseInt(zz);
int erg;
erg=z1+z2;
JOptionPane.showMessageDialog(null, "Das Ergebnis ist: "+erg);
}
else
if("-".equals(y)){
String z=JOptionPane.showInputDialog("Bitte die erste Zahl eingeben:");
String zz=JOptionPane.showInputDialog("Bitte die zweite Zahl eingeben:");
int z1=Integer.parseInt(z);
int z2=Integer.parseInt(zz);
int erg;
erg=z1-z2;
JOptionPane.showMessageDialog(null, "Das Ergebnis ist: "+erg);
}
if("*".equals(y)){
String z=JOptionPane.showInputDialog("Bitte die erste Zahl eingeben:");
String zz=JOptionPane.showInputDialog("Bitte die zweite Zahl eingeben:");
int z1=Integer.parseInt(z);
int z2=Integer.parseInt(zz);
int erg;
erg=z1*z2;
JOptionPane.showMessageDialog(null, "Das Ergebnis ist: "+erg);
}
else
if("/".equals(y)){
String z=JOptionPane.showInputDialog("Bitte die erste Zahl eingeben:");
String zz=JOptionPane.showInputDialog("Bitte die zweite Zahl eingeben:");
int z1=Integer.parseInt(z);
int z2=Integer.parseInt(zz);
int erg;
erg=z1/z2;
JOptionPane.showMessageDialog(null, "Das Ergebnis ist: "+erg);
}
}
}
Nen Link kann ich leider nicht posten wir haben das Buch von ihm als Word Doc bekommen. Ein Deckblatt is da leider nicht dabei von daher kann ich auch nicht sagen wies heisst.
Aber die Copyrights hat er dran.
Na dann ist es kein Buch, sondern ein einfacher Skript... :? Und dass dieser Skript sich mit der 8. Auflage der 1500 Seiten dicken Insel messen kann, halte ich für äußerst unwahrscheinlich. Solche Aussagen wie "die ganze andere Literatur sei scheiße" sind dann wohl eher auf mangelnde Bescheidenheit als auf herausragende Genialität zurückzuführen... :roll: Also dass jemand empfiehlt, die Literatur aus der Außenwelt nicht zu lesen, das ist doch echt blanker Wahnsinn :?
Zum Code:
1) Hast du es denn überhaupt mit ein paar Zahlen getestet?
Code:
erg=z1/100*19+z1;
ist in diesem Kontext ein recht grober Fehler: bei allen z1<100 wird der erste Term komplett auf 0 gerundet (sind ja alles integer), in allen anderen Fällen kommt auch fast immer müll raus. Und überhaupt: divisionen sollte man vermeiden. Kannst ja genausogut statt der wurst da oben z1*1.19f hinschreiben, und dann entsprechend runden. Beim Runden auf 2 nachkommastellen würde die division zwar wieder reinkommen, aber das ist eine andere Geschichte.
also:
Code:
Math.ceil(z1*119)/100
stattdessen schreiben, und beim "Geld" wäre es wohl angebrachter mit Fließpfennigzahlen zu rechnen...
2) Wieso wieder die Flut an sinnfrei benannten variablen? Wenn du etwas nicht sinnvoll benennen kannst, solltest du dir gedanken drüber machen, ob du dieses "dingsda" überhaupt brauchst. Etwas auf die Spitze getrieben könntest du statt dem letzten Abschnitt auch direkt
Code:
JOptionPane.showMessageDialog(null, "Das Ergebnis ist: "+
(Integer.parseInt(JOptionPane.showInputDialog("Bitte die erste Zahl eingeben:"))
/Integer.parseInt(JOptionPane.showInputDialog("Bitte die zweite Zahl eingeben:")))
);
hinschreiben, dann wären erstmal diese ganzen namenlosen bezeichnertrümmer weg... Allgemein: semantisch macht es wenig sinn, eine Variable für irgendwas anzulegen, was eh nur ein mal gebraucht wird.
Wenn man das schon tut, dann wegen der Übersichtlichkeit. Und deine zig tausend "z" "zz" "zzz" "z1" "z12" "z21" "z010232" tragen nicht zur Überischtlichkeit bei, die schaden nur.
3) Der code ist alles andere als "idiotensicher". Da braucht die Natur gar keine fortgeschrittene DAU's zu entwickeln: bei jeder Frage kannst du mal versuchen "adbasdjkahbdsjkashbdjk" einzugeben, und das fliegt dir jedes mal um die Ohren. Sinnfreie Eingaben sollte man abfangen, und ein einer schleife solange nachfragen, bis der Benutzer was sinnvolles eingibt.
4) Wieso diese bescheuerten JOptiondialogPaneBlah-Dinger? Warum machst du nicht ein schönes gemütliches Programm für die shell daraus?
5) Was in der ersten Version zuviel war, ist jetzt zu wenig. Sowas wie MWSt-Berechnung könntest du zum beispiel in eine separate methode auslagern, dann würde es schon ein wenig hübscher aussehen und ein wenig wiederverwertbarer sein.
hmm..danke für diese sehr nett formulierte "Kritik".Nun das ich keine einfacheren Befehle nutze liegt daran das ich noch nicht mehr kenne, ich mache java erst seit 3 Monaten und das war jetzt meine erste "Eigenentwicklung".
Das ganze Proramm sollte nur erstmal eine kleiner Test für mich selbst sein, ob ich das was wir bisher im Unterricht gemacht haben auch einsetzen kann, deswegen stehts ja auch unter anfängerfragen .
Und ich habs mit Zahlen ausprobiert. Funktionierte einwandfrei.Nur hab ich diesmal nicht(wie du schon sagtest) dran gedacht double zu nutzen...
Nun das ich keine einfacheren Befehle nutze liegt daran das ich noch nicht mehr kenne, ich mache java erst seit 3 Monaten und das war jetzt meine erste "Eigenentwicklung".
Was heißt dann "seit drei Monaten"? ???:L Laut deiner bisherigen Aussagen hast du noch keine Literatur zu Java gelesen, und das ist auch das erste Programm das du geschrieben hast. Nach meiner Rechnung wären das dann keine 24 Stunden. Dann ist ja auch alles oK, beim ersten Tag mit Java sagt auch keiner was, wenn dir manche primitive Datentypen wie etwa double unbekannt vorkommen, das ist normal. Aber die Aussage mit "drei Monaten" kommt jetzt echt ziemlich schräg rüber :shock:
Meine Ausbildung ist eine Schulische Ausbildung also Ausbildung+Fachabi, das heisst ich hab mich in den 3 Monaten nicht rein mit Java beschäftigt sondern in einer Woche ca. 4 Std und dann haben wir auch oft vieles Wiederholt.
Von daher sind 3 Monate nicht so enorm viel wie es sich jetzt vill. anhört, ist zwischenzeitig sogar 2-3mal ausgefallen.
Ich habe das was wir bisher gemacht haben diese Woche erst so richtig verstanden, von daher war das jetzt sozusagen mein erster selbsttest.
Dass das prog keine Meisterleistung ist weiss ich selbst. ich wollte ja nur ein Prog. zum ausprobieren um mehr über Java zu lernen....
Meine Ausbildung ist eine Schulische Ausbildung also Ausbildung+Fachabi, das heisst ich hab mich in den 3 Monaten nicht rein mit Java beschäftigt sondern in einer Woche ca. 4 Std und dann haben wir auch oft vieles Wiederholt.
Ajo, das funzt schon irgendwie, und gut ist. :toll:
Halte dich nicht so lange mit dem Feinschliff von irgendeinem mini-programm auf. Schreibe lieber stattdessen 10 weitere, die zunehmend komplexer sind und irgendwas sinnvolleres machen als zwei zahlen zu addieren. Dann kriegst du besseres Gefühl dafür, was es für unterschiedliche Situationen gibt und wo du was brauchst.
Hallo,
unser Lehrer sagt nicht von vornherein das Literatur schlecht ist und so hat er es auch noch nie wirklich gesagt
ich meine eher damit das er uns immer zeigen wollte wie schnell wir vorran kommen im Gegensatz zu dem
lesen einer Literatur. Wobei ich nach wie vor davon überzeugt bin, dass es besser ist langsamer vorran zu
kommen und alles zu verstehen als am Ende nichts mehr zu verstehen.
Und als ich damals VB gelernt habe waren meine ersten Projekte folgendes:
Hallo Welt - brauchst nimmer
Taschenrechner - haste ja nu einigermaßen
Kleines Ratespiel wo man ne random Zahl hat dann ne bestimnmte Anzahl an versuchen und immer gesagt bekommt kleiner größer... - wäre interessant
Kleiner Editor siehe Notepad unter Windows - da fehlt dir wohl noch Wissen zur grafischen Oberfläche aber sieh dir mal Netbeans an. :wink:
Hallo,
unser Lehrer sagt nicht von vornherein das Literatur schlecht ist und so hat er es auch noch nie wirklich gesagt
ich meine eher damit das er uns immer zeigen wollte wie schnell wir vorran kommen im Gegensatz zu dem
lesen einer Literatur.
Aha, und jetzt seid ihr da nach "3 Monaten Java" und schreibt zum ersten mal einen Rechner der zwei Zahlen multiplizieren kann :roll:
Da meine ich doch, dass ich damals in den ersten zwei Wochen ~400 Seiten aus der Insel mit meinem Programmchen zum 3D-skizzieren/lösen der Probleme aus der Geometrie der 11 klasse schneller vorangekommen bin, als wenn ich nichts gelesen hätte. ???:L
Also kann ich absolut nicht nachvollziehen, was er da mit "schnell" gemeint haben soll. :shock:
Wobei ich nach wie vor davon überzeugt bin, dass es besser ist langsamer vorran zu
kommen und alles zu verstehen als am Ende nichts mehr zu verstehen.
Ja, wie war das denn jetzt, hat er da den totalen rocketscience Unterricht veranstaltet?
Mit "lustigen Exkursen" in J2EE, "knackigen Beispielen" zur XML-transformation, "hübschen Bildchen" in Java3D, ein paar "niedlichen Beispielen" zur Reflection, und mit Hausaufgaben zum Thema "angewandter Compilerbau"??? :autsch:
Und nach drei Monaten von diesem Massaker mit extrem heftigen Themen fragt ihr euch jetzt "Öhm, wie schreib ich da ein Hello World?" :shock: Oder wie ist das zu verstehen? Dann war der Lehrer wohl echt ein Tick zu schnell... :?
Kleiner Editor siehe Notepad unter Windows - da fehlt dir wohl noch Wissen zur grafischen Oberfläche aber sieh dir mal Netbeans an. :wink:
Wenn dir das Grundlagenwissen dazu fehlt, dann lass erst recht die Finger von diesem Netbeans-GUI-gewurschtel. Wenn man mit einer Holzschaufel nicht klarkommt, sollte man nicht sofort auf einen Radschaufelbagger umsteigen, das hat böse Folgen.
Wie er schon sagte war dies eine Übungsaufgabe die er für sich gemacht hatte.
Da meine ich doch, dass ich damals in den ersten zwei Wochen ~400 Seiten aus der Insel mit meinem Programmchen zum 3D-skizzieren/lösen der Probleme aus der Geometrie der 11 klasse schneller vorangekommen bin, als wenn ich nichts gelesen hätte. icon_scratch.gif
Das kann man damit nicht vergleichen ich habe mir in 4 Wochen, PHP MySQL, ... beigebracht und kann damit nun wer weis was, in der Schule geht der Lernprozess leider nicht so praktisch und eigenorientiert.
Also kann ich absolut nicht nachvollziehen, was er da mit "schnell" gemeint haben soll.
Das sagte er uns weil in unserem Java Buch auf 200 Seiten beschrieben wird wie man Schleifen usw erstellt und wir es binnen 2 Tage glaub alles gemacht haben.
Wenn dir das Grundlagenwissen dazu fehlt, dann lass erst recht die Finger von diesem Netbeans-GUI-gewurschtel. Wenn man mit einer Holzschaufel nicht klarkommt, sollte man nicht sofort auf einen Radschaufelbagger umsteigen, das hat böse Folgen.
Ich kann das nur aus der Webausrichtung her sagen, dass ich so mein Wissen als Webmaster erreicht habe. Denn wär mir damals als ich 11 war einer mit HTML angekommen wäre mir wohl der Spaß an der Sache vergangen stattdessen habe ich erst mit Editoren gearbeitet und irgendwann merkte ich wie jämmerlich eingeschränkt man damit nur arbeiten kann und habe mir die Sprachen und Zubehör beigebracht .
Das kann man damit nicht vergleichen ich habe mir in 4 Wochen, PHP MySQL, ... beigebracht und kann damit nun wer weis was, in der Schule geht der Lernprozess leider nicht so praktisch und eigenorientiert.
na siehst du, dann weißt du ja genau was ich meine Was in der Schule los ist weiß ich nicht, ich kann mich jedenfalls nicht dran erinnern, dass wir dort überhaupt irgendwas sinnvolles gemacht hätten^^ :roll:
Das sagte er uns weil in unserem Java Buch auf 200 Seiten beschrieben wird wie man Schleifen usw erstellt und wir es binnen 2 Tage glaub alles gemacht haben.
In der Insel ist die "Sprachbeschreibung" auch ~180 Seiten lang, da zwingt dich ja auch keiner das kapitel über JDBC durchzulesen Aber wenn ihr das alles in 2 Tagen gemacht habt, womit habt ihr euch denn dann in den restlichen 88 Tagen befasst? Wir haben in der Schule beispielsweise Egoshooter gezoggt, das war ganz lustig^^ :lol:
Ich kann das nur aus der Webausrichtung her sagen, dass ich so mein Wissen als Webmaster erreicht habe. Denn wär mir damals als ich 11 war einer mit HTML angekommen wäre mir wohl der Spaß an der Sache vergangen stattdessen habe ich erst mit Editoren gearbeitet und irgendwann merkte ich wie jämmerlich eingeschränkt man damit nur arbeiten kann und habe mir die Sprachen und Zubehör beigebracht .
Joah, für webdesign ist das evtl gar kein schlechter Ansatz für den Anfang. Aber da geht es anfangs auch primär darum, wie etwas aussieht. Das Aussehen wirst du auch für eine Java Applikation schnell mit dem GUI-Builder hinbekommen, aber es tut dann nichts, es sieht nur hübsch aus. Und ohne ein paar Zusatzinformationen, wie man denn das unter der graphischen Oberfläche alles "verkabeln" soll, ist der Spaß wesentlich schneller weg als bei Webseiten
Und der GUI-Builder macht es einem nicht unbedingt leichter, da kriegt man nur 500 zeilen code hingeknallt, und versteht dann nur "bahnhof"...
Dem kann ich dir bisher zustimmen, möchte nun aber nicht zu sehr den OT hier fördern ^^
ihr das alles in 2 Tagen gemacht habt, womit habt ihr euch denn dann in den restlichen 88 Tagen befasst? icon_wink.gif Wir haben in der Schule beispielsweise Egoshooter gezoggt, das war ganz lustig^^
Nunja wir haben teilweise Funktionen besprochen um Strings zu extrahieren, dann fehlte einige Wochen mal der Lehrer, dann haben wir halt die ganzen Sachen mit Kunstruktor und der zugehörigen objektorientierten Programmierung gemacht.
Wer was in der Schule macht äußer ich jetzt mal nicht, da man ja nie weiß welche Lehrer von uns oder so hier unterwegs sein könnten, zumal ich hier schon einige Fragen von den Studierenden der Partneruni gesehen habe :bae:
Wer was in der Schule macht äußer ich jetzt mal nicht, da man ja nie weiß welche Lehrer von uns oder so hier unterwegs sein könnten, zumal ich hier schon einige Fragen von den Studierenden der Partneruni gesehen habe :bae: