Erste Java Übung



  • Hallo,

    wir haben diese Woche an der Uni mit Java begonnen und eine erste Übungsaufgabe bekommen. Bis auf eine kleine Außnahme funktioniert das soweit auch ganz gut.

    Aufgabe:
    Erweitern Sie das Programm aus Aufgabe 2.1 so, dass der Benutzer nicht nur zwei sondern beliebig viele Zahlen eingeben kann. Nach der Eingabe der ersten beiden Zahlen sollte eine Meldung wie z. B. „Weitere Zahlen eingeben (0/1)?“ erscheinen. Falls der Benutzer mit „1“ antwortet, soll die nächste Zahl abgefragt werden. Falls der Benutzer mit „0“ antwortet, soll als Ergebnis für alle eingegebenen Zahlen deren Summe und Produkt angezeigt werden.

    mein Code:

    import java.util.Scanner;
    
    public class ersteUebung {
    
    	public static void main(String[] args) {
    
    		Scanner sc = new Scanner(System.in);
    
    		float a,nocheiner;
    		float erg=0;
    		float erg1=1;
    
    		do{
    			System.out.println("Geben Sie eine Zahl ein: ");
    			a = sc.nextFloat();
    
    			System.out.println("Wollen Sie noch eine Zahl eingeben? (1=JA, 0=NEIN): ");
    			nocheiner = sc.nextFloat();
    
    			erg+=a;
    			erg1*=a;
    
    		}
    		while(nocheiner==1);
    
    		System.out.println("Die Summe lautet: " + erg);
    		System.out.println("Das Produkt lautet: " + erg1);
    
    	}
    
    }
    

    Hinweis: Beispiel für eine Ergebnis-Ausgabe:
    Sie haben eingegeben: 1, 2, 5, 6, 9.5

    Wie kann ich nach der do-while Schleife die einzelnen Eingaben, die ich gemacht habe wieder ausgeben?

    Vielen Dank



  • Naja,

    der User gibt die Daten ein über deinen Scanner! Also gut, aber nach jedem schreifendurchlauf verwirfst du die eingegebene zahl ja wieder!!

    d.h. du musst bei jedem schleifendurchlauf die eingegeben zahl ja irgendwo speichern!

    Spichwort Liste oder Array!

    und danach kannst du die liste oder array in einer weiteren schleife durchlaufen und ausgeben!

    🕶



  • danke

    hab das mit dem array mal in c probiert(da ich mich dort besser auskenne) und es hat geklappt. In Java funktionierts leider noch nicht

    Ich habe zuerst ein float Array erstellt.

    float[] arr = new float[50];
    

    dann wollte ich in der do-while schleife jeden eingegeben Wert in das Array speichern

    arr[z] =a; 
    z++;
    

    die variable z habe ich zuvor folgendermaßen initialisiert

    float z=0;
    

    das Problem ist, dass mir Eclipse immer als Fehlermeldung bringt

    Type missmacht: cannot convert from float into int.

    Aber warum will es denn überhaupt konvertieren? Sind ja beidesmal float-Werte.
    (Wenn ich konvertiere gehts auch nicht - Fehler zur Laufzeit - Nullpointerexception)

    Wie gesagt, in C funktioniert der Code so einwandfrei - da ich mich in Java aber (noch) nicht auskenne, hab ich ka. wo der Fehler liegt.

    wäre nett, wenn mir nochmals jemand helfen könnte 😃



  • wieso sollte der index z ein float sein... unsinn.



  • mach aus deinen "float z=0" ein "int z=0"

    und statt statischen arraym guck mal nach ArrayList in java

    dann kannst

    List<float) list = new ArrayList<floagt>();
    
    list.Add(a);
    

    glaub so irgendwie...


Log in to reply