ich bin Anfänger und habe folgendes Problem.
Ich kann das Programm compilieren ohne Fehler. Es wird zuerst nach der ersten Zahl gefragt. Kann man auch ein tippen.
Nach dem eintippen inkl. Enter kommt dann "Zweite Zahl eingeben:" aber da steht dann auf einmal eine Zahl die garnicht eingegeben habe. ganz komisch.
Kann mir jemand helfen.
Hier ist der Code:
Code:
public class TryInput {
public static void main(String[] args)
throws java.io.IOException {
int x, y;
System.out.println("Erste Zahl eingeben:");
x= System.in.read();
System.out.println("Zweite Zahl eingeben:");
y= System.in.read();
System.out.println(x+y);
}
}
z.B gebe ich 2 als erste zahl ein und drücke enter. dann steht schon als zwiete zahl 60. Weiss auch nicht warum. und das richtige ergebniss gibts sowieso nicht
import java.io.*;
public class TryInput {
public static void main(String[] args) throws IOException {
int x, y, z;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Addition zweier ganzer Zahlen\n");
System.out.print("Erste Zahl eingeben: ");
x = Integer.parseInt(br.readLine());
System.out.print("Zweite Zahl eingeben: ");
y = Integer.parseInt(br.readLine());
z = x + y;
System.out.println("\n"+x+" + "+y+" = "+ z);
}
}
Glaube ich nicht. Deine Klasse ließ sich auch ohne import-Anweisung problemlos kompilieren.
Mit import-Anweisung änderte sich bei mir an dem Ergebnis nichts.
Ich weiß nicht, wo die zweite Zahl her kommt. ???:L Interessant ist es aber allemal.
ich habe es mit verschieden Zahlen ausprobiert. für jeden verschiedene Zahl kommt die gleiche. Also für 2 kommt 60, für 234 kommt 104. Muss ich nicht irgenwo sagen, dass ich mit Dezimalzahlen arbeite. ich habe hier ein buch vor mir. Da steht so was drin:
...
x= System.In.read();
x= Character.digit((char)x.10);
....
Ich hatte mal das selbe Problem: Es liegt (glaube ich) daran, dass read() einen string liest, du benutzt aber Integer. Da kann es zu Speicherproblemen kommen. Man müsste also den Integer konvertieren. Leider habe ich das Programm nicht mehr. Ich habe damals ein Zahlen sortierprogramm geschrieben. Kann aber auch sein dass es an was anderem liegt. In c gibt es zB eine Funktion atoi. ASCII to Integer. Da wird ein String in Integer konvertiert.
Man könnte also nach der Abfrage den String wieder in Integer konvertieren. Such doch mal bei Google.