# Benutzereingaben addieren



## Gast (19. Feb 2008)

Hallo,
ich möchte beliebig viele Benutzereingaben addieren. Wenn z.B. 3, 5 und 2 eingegeben werden, soll wenn die 0 eingegeben wird das Ergebnis erscheinen.

Ich weiß aber nicht wie man die jeweiligen Benutzereingaben addiert und speichert. Ich habe es mit Double tmp = (0 + zahlEins) verucht.

Hat jemand eine Idee?


```
import java.io.*;
import java.util.*;

public class Aufgabe3 {
	public static void main(String[] args) throws Exception {
	
BufferedReader tastatur; 
      tastatur = new BufferedReader(new InputStreamReader(System.in)); 

      double zahlEins, tmp, tmp2;
	  int a;
   	  
      
      
      zahlEins=1;
      
      
      while (zahlEins == 1)
      {
      
      	for (a=1; a < 1000; a++)
      	{
      		
      
      		System.out.print(a+ " Zahl eingeben: "); 
      		zahlEins = Double.valueOf(tastatur.readLine()); 
	  		
	  		if(zahlEins != 0){
      
      	
      			tmp = (0 + zahlEins);
      			
      			
      			zahlEins++;
      						
      
      			System.out.println(tmp);
      		
      			}else{
      			
      			System.out.println(tmp);
      		}
      	}
      	
      }
      
    }
}
```
[/code]


----------



## SlaterB (19. Feb 2008)

das ist wohl jede Mühe bis auf korrekten Code vergeblich


```
public class Aufgabe3
{
    public static void main(String[] args)
        throws Exception
    {
        BufferedReader tastatur;
        tastatur = new BufferedReader(new InputStreamReader(System.in));

        double erg = 0;
        double neueZahl = -1;
        while (neueZahl != 0)
        {
            System.out.println("Summe bisher: " + erg);
            System.out.print("Zahl eingeben (0 für Ende): ");
            neueZahl = Double.valueOf(tastatur.readLine());
            erg += neueZahl;
        }
        System.out.println("Ende");
    }
}
```


----------



## Gast (19. Feb 2008)

Achso erg+=neueZahl; warum bin ich nicht drauf gekommen   

Werde es nochmal versuchen!


----------



## Gast (19. Feb 2008)

```
import java.io.*;
import java.util.*;

public class Aufgabe3 {
	public static void main(String[] args) throws Exception {
	
BufferedReader tastatur; 
      tastatur = new BufferedReader(new InputStreamReader(System.in)); 

      double eingabe=1, erg=0;
	  int a;
   	  while (eingabe != 0)
      {
      	for (a=1; a < 1000; a++)
      	{
      		System.out.print(a+ " Zahl eingeben: "); 
      		eingabe = Double.valueOf(tastatur.readLine()); 
	  		
	  		erg+=eingabe;
      	
      	}
      }
      	System.out.println("das Ergebnis ist: "+ erg);
    }
 }
```

Warum geht die Schleife weiter auch wenn man die 0 eingibt?

Und kann mir jemand sagen, wie ich anstatt der 1000 in der for Schleife belibieg viele Eingaben eingeben kann?


----------



## SlaterB (19. Feb 2008)

> Warum geht die Schleife weiter auch wenn man die 0 eingibt? 

erst wird die for-Schleife bis 1000 abgearbeitet,
dann wird wieder 1x die while-Schleife gefragt

> Und kann mir jemand sagen, wie ich anstatt der 1000 in der for Schleife belibieg viele Eingaben eingeben kann?

mein Code?


----------



## Desch (19. Feb 2008)

Also wenn du beim 1000. Mal die 0 eingibst, wird beendet ^^.
SlaterBs Lösung macht doch das, was du wolltest, oder?


----------



## Guest (19. Feb 2008)

Also liegt es an der for Schleife.

In der Aufgabe steht, dass immer gefragt werden soll 1. Zahl eingeben, 2. Zahl eingeben usw.


----------



## SlaterB (19. Feb 2008)

nimm ne while-Schleife und zähle nebenbei eine Hilfsvariable hoch,
in jedem Schleifendurchlauf +1


----------



## Gast (19. Feb 2008)

OK habs mit ner while Schleife versucht. Geht leider trotzdem weiter  ???:L 

double eingabe=1, erg=0;
	  int a=1;
   	  while (eingabe != 0)
      {
      	while (a != 0)
      	{
      		System.out.print(a+ ". Zahl eingeben: "); 
      		eingabe = Double.valueOf(tastatur.readLine()); 

	  		erg+=eingabe;
      	a++;

      	}
      }
      	System.out.println("das Ergebnis ist: "+ erg);


----------



## SlaterB (19. Feb 2008)

was soll die innere Schleife mit a?
jetzt hast du genau die for-Schleife nachgebaut,
a wird nie 0 sein, die innere Schleife nie beendet (wie vorher die for-Schleife)

immer noch: nur eine while-Schleife


----------



## Gast (19. Feb 2008)

Habst endlich geschafft   

double eingabe=1, erg=0;
	  int a=1;
   	  while (eingabe != 0)
      {

      	{
      		System.out.print(a+ ". Zahl eingeben: "); 
      		eingabe = Double.valueOf(tastatur.readLine()); 

	  		erg+=eingabe;
      	a++;

      	}
      }
      	System.out.println("das Ergebnis ist: "+ erg);

Ich frag mich immer wie ihr so schnell darauf kommt  :roll:


----------



## 0x7F800000 (19. Feb 2008)

jetzt mach noch das überflüssige klammerpaar weg, dann ist alles gut...


----------



## Gast (20. Feb 2008)

Habe das Programm jetzt so erweitert, daß man sagen soll ob man addieren oder subtrahieren will.
Leider klappt irgendwas mit der subtraktion nicht:


```
double eingabe=1, erg=0;
  int a=1;
  String zeichen="1";
   	  
  while (eingabe != 0)
  {
      System.out.print(a+ ". Zahl eingeben: "); 
      eingabe = Double.valueOf(tastatur.readLine()); 
	  	
         if (eingabe != 0){
        System.out.print("- oder +          ");
        zeichen=tastatur.readLine();
         }
         if (zeichen.equals("+")){
         erg+=eingabe;
	  		
         }else{
         erg-=eingabe;
         }
          a++;
      
      }	
      System.out.println("-------------------");
      System.out.println("Die Summe ist: "+ erg);
```


----------



## LordLuzifer (20. Feb 2008)

Erstmal hast du die Klammer der ersten If-Anweisung zu früh geschlossen, die Anweisung sollte erst nach "erg-= eingabe;" enden.
Zweitens ist der Aufwand unnötig; wenn man etwas abziehen will, gibt man halt den passenden negativen Wert ein, das sollte funktionieren.
Drittens funktioniert es doch wie es soll?!


----------



## Gast (20. Feb 2008)

Wenn ich:

1. Zahl eingeben: 10
- oder +          -
2. Zahl eingeben: 5
- oder +          -
3. Zahl eingeben: 0
-------------------
Die Summe ist: -15.0

Process completed.

eingebe kommt -15 raus weil ja erg auf 0 gesetzt ist. Also rechnet er 0 - 10 = -10  - 5 = -15


----------

