# Wo ist mein Fehler ? o:



## MCmarekAF (4. Feb 2013)

Hallo Leute , ich habe ein Problem  : ich habe ein Programm geschrieben , aber habe Schwierigkeiten , da es zwar funktioniert , aber nicht ganz so wie ich das möchte .
Dieses Programm sollte eigentlich ein Taschenrechner sein , mit dem man die vier Grundrechenarten ausführen können sollte ... ich habe eifach mal ein paar kommentare in den Quellcode geschrieben , damit ihr seht was genau nicht funktioniert .
Ich hoffe das ihr mir weiterhelfen könnt und freue mich auf eure antworten 



```
import java.util.Scanner;


public class Klasse{

public static void main(String args[]){
Scanner s = new Scanner(System.in);

double x ;

System.out.println("Welche Art der Rechnung möchten Sie durchführen ? ");
System.out.println(" ");
System.out.println("Tippen Sie für Addition die : 1,");
System.out.println("für Subtraktion die : 2 ,");
System.out.println("für Multiplikation die : 3 ,");
System.out.println("Und für Division die : 4 ein. ");


x =s.nextInt(); // das wird zwar richtig ausgeführt , aber wenn die erste Zahl , die ich eingebe , kleiner oder gleich 4 ist , dann springt er in eine der anderen methoden :/
Addition(x);
Subtraktion(x);
Multiplikation(x); // das wird immer zweimal aufgeführt ..
Division(x);} // wenn ich die Division wähle , führt er es zwar aus , aber 3 mal o: ich hab aber keine ahnung wieso ..



private static void Addition(double a){
if (a==1){
Scanner s = new Scanner(System.in);
System.out.println("Geben sie die erste Zahl ein :");
a = s.nextInt();
System.out.println("Geben Sie die zweite Zahl ein :");
double b = s.nextInt();
double c = a +b ;
System.out.println("Die Summe aus " + a + " und " + b + " ist : " + c);
Subtraktion(a);

}
}

private static void Subtraktion(double b){
if(b==2){

Scanner sn = new Scanner(System.in);

System.out.println("Geben sie die erste Zahl ein :");
double d = sn.nextInt();
System.out.println("Geben Sie die zweite Zahl ein :");
double e = sn.nextInt();
double f = d - e ;
System.out.println("Die Differenz aus " + d + " und " + e + " ist : " + f);
}
Multiplikation(b);

}

private static void Multiplikation(double c){ // 50
if (c==3){

Scanner s = new Scanner(System.in);
System.out.println("Geben sie die erste Zahl ein :"); 
double g = s.nextInt();
System.out.println("Geben Sie die zweite Zahl ein :");
double h = s.nextInt();
double i = g * h ;
System.out.println("Das Produkt aus " + g + " und " + h + " ist : " + i);

}
Division(c);
}

private static void Division (double d){
if (d==4){

Scanner s = new Scanner(System.in);
System.out.println("Geben sie die erste Zahl ein :");
double j = s.nextInt();
System.out.println("Geben Sie die zweite Zahl ein :");
double k = s.nextInt();
double l = j / k ;
System.out.println("Der Quotient on " + j + " und " + k + " ist : " + l);



}
}
}
```


----------



## Deros (4. Feb 2013)

du ruft in zeile 20-24 alle methoden nach einander auf und in jeder methode selbst nochmals die nächste methode z.b. zeile 36


----------



## Timothy Truckle (4. Feb 2013)

*Doppelpost!*

Siehe hier: http://www.java-forum.org/netzwerkprogrammierung/147619-fehler-o.html

bye
TT


----------



## MCmarekAF (4. Feb 2013)

ja schon , aber muss ich dass nicht machen um den methoden den Wert x zu übergeben ? thx


----------



## Deros (4. Feb 2013)

musst du was machen? 

du kannst ja mal immer anstelle der methodenaufrufe denn kompletten jeweiligen Code der Methode kopieren, vielleicht verstehst du dann eher was da passiert.

edit: 
im Moment rufst du halt die Methoden verschachtelt so auf:
Addition(x);
-Subtraktion(b);
--Multiplikation(c); 
---Division(d);
Subtraktion(x);
-Multiplikation(c); 
--Division(d);
Multiplikation(x); 
-Division(d);
Division(x);


----------

