Hi, Ich habe grad einen einfachen Taschenrechner geschrieben der mit + und - arbeitet allerdings kam ich mit dem String -> char nicht klar.
Hier mal der code. Ich konnte nicht einfach einen String "+" oder "-" in die switch anweisung packen, die Operatoren wurden einfach nicht erkannt also hab ich mich im Internet umgeschaut und das hier gefunden : .charAt(0); soweit ich das verstanden habe wird hiermit ein String in ein char umgewandelt ? naja ich habe dann den char op=eingabe3.charAt(0); (warum 0 ?) gesetzt und danach gings mit der switch anweisung. Allerdings haben wir sowas noch nicht gemacht deshalb denke ich, ich habe mir das Leben unnötig schwer gemacht damit und es gibt eine elegantere Lösung ohne chars zu benutzen.
Java:
importjavax.swing.JOptionPane;classTasche{publicstaticvoidmain(String[]args){String eingabe1,eingabe2,eingabe3;double z1,z2,ausgabe;char op;
eingabe1=JOptionPane.showInputDialog("Geben sie eine Zahl ein");
eingabe2=JOptionPane.showInputDialog("Geben sie eine weitere Zahl ein");
eingabe3=JOptionPane.showInputDialog("+ addieren\n- subtrahieren");
op=eingabe3.charAt(0);
z1=Double.parseDouble(eingabe1);
z2=Double.parseDouble(eingabe2);switch(op){case'+':
ausgabe=z1+z2;break;case'-':
ausgabe=z1-z2;break;default: ausgabe=0.0d;if(op!='+'|| op!='-')JOptionPane.showMessageDialog(null,"Falscher Operator.\nStarten sie das Programm neu.");System.exit(0);}JOptionPane.showMessageDialog(null,ausgabe);}}
Strings werden halt nicht mit == verglichen, sondern mit string1.equals(string2)
Und mit .charAt(0) wird der String nicht in einen char umgewandelt. Durch charAt erhälst du das Zeichen (englisch character) an der entsprechenden Stelle zurück.
Falls der Benutzer also nicht einfach nur + oder - eingibt, sondern z.b. +? wird halt nur das erste Zeichen betrachtet und somit würde solch eine "falsche" Eingabe als korrekt betrachtet werden.
Strings werden halt nicht mit == verglichen, sondern mit string1.equals(string2)
Und mit .charAt(0) wird der String nicht in einen char umgewandelt. Durch charAt erhälst du das Zeichen (englisch character) an der entsprechenden Stelle zurück.
Falls der Benutzer also nicht einfach nur + oder - eingibt, sondern z.b. +? wird halt nur das erste Zeichen betrachtet und somit würde solch eine "falsche" Eingabe als korrekt betrachtet werden.