Java Eingabeaufforderung-Basic Zwei Zahlen addieren

canyakan95

Bekanntes Mitglied
Hallo ich habe versucht eine Eingabeaufforderung zu programmieren in Java.
Das ist das erste Mal gewesen und leider bekomme ich nicht genau das raus was ich haben will.
Ich werde zwar aufgefordert zwei zahlen einzugeben und die zahlen werden angezeigt,
aber die rechnung ist sowas von falsch und wenn ich nichts mache bekomme ich auch immer die zahl 23 angezeigt.
Hier mein code :
Java:
import java.io.IOException;

public class Rechner
{
	
	public static void main (String[]args)
	{
		System.out.println("Geben sie die Zahlen ein :");
		Integer input = getInput();
		System.out.println("Ihr ergebnis lautet: " + input);
	}
	
	public static int getInput()
	{
		int summe=0;
		
		try{
			boolean isComplete=false;
			while(!isComplete)
			{
				int a1= (int)System.in.read();
				int a2=(int)System.in.read();
				
				summe = a1+a2;
				isComplete=System.in.available()==0;
			}
		}
		catch(IOException e){}
		
		return summe;
	}
}

Hoffe ihr könnt mir helfen mein Programmcode zu verbessern.
Mit freundlichen Grüßen
 
Hi,

in deinem Code gibt es mehrere probleme.

Zunächst zu folgender Zeile:

Integer input = getInput();

Um nicht zu kompliziert zu werden: Bei solch einer Benutzung des Datentyps handelt es sich um eine "Wrapper-Klasse". D.h. dein Integer-wert wäre ein Objekt der Klasse Integer. Um mehr über Wrapper-Klassen zu erfahren kannst du einfach googlen.
Bei deinem Beispiel reicht aber der primitive Datentyp von Integer. D.h. du solltest folgendes schreiben:

int input = getInput();

wobei man hier sagen muss, dass der name unpassend ist. Man würde hier davon ausgehen das man lediglich den Input zurbekommt und nicht schon das ergebnis.


Zu deiner getInput() methode:

Mit System.in.read() liest man bytes. Um wieder nicht zu kompliziert zu werden, benutze lieber die Scanner klasse. Eine while-schleife benötigst du in diesem Beispiel auch nicht.

zusammengefasst:

Java:
import java.util.Scanner;


public class Rechner
{
 
    public static void main (String[]args)
    {
        System.out.println("Geben sie die Zahlen ein :");
        
        Scanner scanner = new Scanner(System.in);
        int a1 = scanner.nextInt();
        int a2 = scanner.nextInt();
        
        
        int result = getResult(a1,a2);
        System.out.println("Ihr ergebnis lautet: " + result);
    }
 
    public static int getResult(int a1, int a2)
    {
        int summe=a1+a2;
        
        return summe;
    }
}
 

Zurück
Oben