Erste Schritte Zahlen addieren zwischen speichern und vergleichen

alexx

Mitglied
Hallo,
Folgende Aufgabe soll gelöst werden:
Schreiben Sie ein Programm, das solange ganze Zahlen von der Tastatur einliest und addiert, bis zweimal in
Folge 23 eingegeben wurde. Anschließend soll die Summe ausgegeben
werden.
Eingabe Beispiel: 4, 0, 37, 15, -8, 106, 14, 23, 23
Ausgabe: Summe = 4 + 0 + 37 + 15 - 8 + 106 + 14 + 37 + 37 = 242
oder
Summe = 242
Dazu habe ich dieses Programm geschrieben:
Java:
import java.util.Scanner;


public class Aufgabe4_2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int ersteZahl, zweiteZahl, ergebnis;
		
		Scanner sc=new Scanner(System.in);
		
		
		do
		{
		
		System.out.println("eingeben: ");
		ersteZahl = sc.nextInt();
		System.out.println("eingeben2: ");
		zweiteZahl = sc.nextInt();
		
		
			//zweiteZahl=ersteZahl;
			
			ergebnis = ersteZahl + zweiteZahl;
			 ergebnis = summe ;
			System.out.println(summe);
			
		}while(ersteZahl!=zweiteZahl);
	}

}

mit ergebnis = summe;
habe ich versucht zwischen Ergebnisse zu erzeugen um diese beim Abbruch auszugeben .
Was ich nun möchte ist es, wie kann ich die Ergebnisse ausgeben, wenn die Schleife terminiert?

Danke
 
S

Spellsleeper

Gast
Willst du jetzt ein Programm schreiben wo du lange Zahlen eingeben kannst und die immer zu einer Gesammtsumme addiert werden? Dann ist der Ansatz verkehrt!
Java:
[code=Java]import java.util.Scanner;
 
 
public class Aufgabe4_2 {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int ersteZahl, zweiteZahl, ergebnis;
        int summe=0;
        Scanner sc=new Scanner(System.in);
        
        
        do
        {
        
        System.out.println("eingeben: ");
        ersteZahl = sc.nextInt();
        if(ersteZahl==zweiteZahl&&ersteZahl==23){
          summe+=23;
          System.out.println("Endergebnis:"+summe)
          break;}
        zweiteZahl=ersteZahl;
        
        
            //zweiteZahl=ersteZahl;
            
            summe = ersteZahl + summe;
             
            System.out.println(summe);
            
        }while(ersteZahl!=null);
       
    }
 
}
[/code]
So könnte es gehen
 
Zuletzt bearbeitet von einem Moderator:

alexx

Mitglied
das Programm lässt sich nicht ausführen: hier merkert es:
Java:
while(ersteZahl!=null);


The operator != is undefined for the argument type(s) int, null
 
Zuletzt bearbeitet:
S

Spellsleeper

Gast
Sorry das ist jetzt ne spontan kurze Antwort aber probiers mal so.
Java:
while(!(ersteZahl.equals(null)));
 

jgh

Top Contributor
da [c]ersteZahl[/c] ein primitiver Datentyp vom Typ [c]int[/c] ist, lässt sich darauf nicht die [c]equals()[/c] Methode anwenden, oder einen Vergleich mit [c]null[/c]
Code:
==
wäre der richtige Operator und dann der Vergleich mit einer
Code:
int-
Zahl

Hier mal ein Lösungsvorschlag für die gestellte Aufgaben:
Java:
import java.util.Scanner;

public class Aufgabe4_2 {

	static int eingabe;
	static int ergebnis = 0;
	static boolean ist23 = false;
	static boolean doppelt = false;
	static StringBuilder sb = new StringBuilder();

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		do {
			System.out.print("eingeben: ");
			eingabe = pruefeEingabe(sc.nextInt());
			sb.append(eingabe + " + ");
			ergebnis = ergebnis + eingabe;
			System.out.println("\tsumme=" + ergebnis);

		} while (!doppelt);
	}

	private static int pruefeEingabe(int nextInt) {
		if (nextInt == 23 && ist23) {
			doppelt = true;
			sb.append(nextInt);
			System.out.println(sb.toString());
			return 23;
		}
		if (nextInt == 23) {
			ist23 = true;
		} else {
			ist23 = false;
		}

		return nextInt;
	}
}
 
Zuletzt bearbeitet:

Neue Themen


Oben