Scanner Java

Neue Frage »

Auf diesen Beitrag antworten »
WeisserBitcode Scanner Java

Meine Frage:
Guten Tag,
Ich habe ein kleines Programm geschrieben indem man 3 Werte per Scanner eingeben kann. Diese werden nach jeder weiteren Eingabe addiert. Am Ende wird schließlich noch ein Zinssatz dazuaddiert oder abgezogen.

Mein Problem ist, das ich die 3 Scanner ja vorgegeben habe. Doch wenn ich nur 2 Werte eingeben möchte oder sogar 20, wie mach ich das dann? Mit ner Schleife oder mit einem if Befehl? Ich hab keine Ahnung wie ich da vorgehen soll.

PS: Glaub auch meine Lösung ist bischen umständlich großes Grinsen geht bestimmmt auch leichter als jedes mal guthabeninEuro1/2/3/4 zu schreiben.

Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
package info1;

import java.util.Scanner;

public class Bankkonto {
	public static void main(String[] args) {
		double guthabenInEuro1;

		Scanner scannerVariable = new Scanner(System.in);

		System.out.println("Einzahlung/Abbuchung hier eingeben!");
		guthabenInEuro1 = scannerVariable.nextDouble();
		System.out.println("Guthaben = " + guthabenInEuro1);

		System.out.println("Einzahlung/Abbuchung hier eingeben!");
		double guthabenInEuro2 = scannerVariable.nextDouble();
		double guthabenInEuro3 = guthabenInEuro1 + guthabenInEuro2;
		System.out.println("Guthaben = " + guthabenInEuro3);

		System.out.println("Einzahlung/Abbuchung hier eingeben!");
		double guthabenInEuro4 = scannerVariable.nextDouble();
		double guthabenInEuro5 = guthabenInEuro4 + guthabenInEuro3;
		System.out.println("Guthaben = " + guthabenInEuro5);

		double zinssatz = 50; // %

		double umrechnungZinssatz = (zinssatz / 100) + 1;

		double endbetrag = guthabenInEuro5 * umrechnungZinssatz;

		double geldDurchZinsen = endbetrag - guthabenInEuro5;

		if (zinssatz > 0) {
			System.out.println("Gewinn durch Zinsen: " + geldDurchZinsen);
		} else if (zinssatz < 0) {
			System.out.println("Verlust durch Zinsen: " + geldDurchZinsen);
		}
		System.out.println("Endguthaben: " + endbetrag);
	}
}
 
Auf diesen Beitrag antworten »
InformaTiger RE: Scanner Java

Hallo WeisserBitcode,

ich habe dein Programm jetzt mal für diesen Zweck angepasst. Du kannst eine Liste verwenden und beliebig viele Werte speichern (sofern das dein Speicher zulässt - also doch nur endlich viele Augenzwinkern ). Solange der Nutzer nun nicht eine leere Eingabe tätigt wird jeweils ein String von der Komandozeile eingelesen und in einen Double konvertiert. Anschließend landet das ganze in der Liste.
Bricht der Nutzer ab, wird die Liste (per Java 8 API) summiert und deine Berechnungen durchgeführt.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;

public class BankingAccount {

    public static void main(String[] args){
        List<Double> account = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);

        System.out.println("Bitte geben Sie Ihre Einzahlungen/Abbuchungen ein.");
        System.out.println("Sie beenden die Eingabe mit einer Leerzeile");
                
        String input;
        while ((input = scanner.nextLine()) != null){
            if (input.equals("")){
                break;
            }
            account.add(Double.valueOf(input));
        }
        double sum = account.stream().mapToDouble(Double::doubleValue).sum();

        double zins = 50;
        double result = sum * ((zins / 100) + 1);

        double diff = result - sum;

        if (zins > 0){
            System.out.println("Gewinn durch Zinsen: " + diff);
        } else {
            System.out.println("Verlust durch Zinsen: " + diff);
        }
        scanner.close();
    }
}


Ich hoffe ich konnte helfen. smile

Mit freundlichen Grüßen
InformaTiger
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »