Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo Leute,
Ich bin neu mit Java. Ich habe If Anweisung gelernt und Input Output mit Nummer. Damit mache ich ein Taschenrechner. Ich benutze Netbeans. Ich habe soweit gemacht, aber habe Fehler in If Anweisung.
Es ist komisch, dass es Fehler in drei untere If-Anweisungen gibt. Wieso gibt es kein Fehler in erste?
Ich habe probiert mit Addieren und es geht irendwas Falsch.
Code:
run:
1. Nummer
5
Operator
+
2. Nummer
5
Result: 55
Bitte helfen mir. Danke im Voraus
Hier ist der Code:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class NewClass
{
public static void main ( String[] args ) throws IOException
{
String a, b, x, answer;
BufferedReader reader;
reader = new BufferedReader (new InputStreamReader(System.in));
System.out.println("1. Nummer");
a = reader.readLine();
System.out.println("Operator");
x = reader.readLine();
System.out.println("2. Nummer");
b = reader.readLine();
if (x.equals("+"))
answer = a + b;
if (x.equals("-"))
answer = a - b;
if (x.equals("*"))
answer = a * b;
if (x.equals("/"))
answer = a / b;
System.out.println("Result: " + answer);
}
}
a und b sind Strings, damit kannst du so nicht rechnen, du musst diese erst umwandeln, beispielsweise in Integer oder Fließkommazahlen.
Dass das bei dem "+" geht ist eine Ausnahme, der verkettet die beiden Strings...
D.h. du bekommst da womöglich ein falsches Ergebnis raus, weil er eben nicht rechnet sondern einfach ankettet:
5+5 --> 55...
In deinem Fall macht es glaube ich auch Sinn eine Mehrfachauswahl zu verwenden. Das macht man, wenn nur einer der Fälle zutreffen kann.
Sollte dann so ausschauen:
Java:
if (x.equals("+")){
answer = a + b;
} else if (x.equals("-")){
answer = a - b;
} else if (x.equals("*")){
answer = a * b;
}else if(x.equals("/")){
answer = a / b;
}else{
System.out.println("Die Eingabe war falsch!");
}
Er prüft nun von oben nach unten welche von den Bedienungen zutrifft und trifft eines zu, dann prüft er die anderen nicht mehr, bei dir würde er immer alle prüfen.
Trifft nichts zu, dann geht er in den Else-Zweig und gibt eine Meldung aus...