Hallo zusammen,
ich habe folgendes Problem: Wenn ich WaehrungsrechnerMain.java kompilieren möchte, findet der Kompiler die Variable "waehrung" in der Methode *schreibeUmrechnungen* (Zeile 30) nicht. (Folgender Error wird ausgegeben (für insgesamt 17 verschiedene Zeilen)):
WaehrungsrechnerMain.java:58: error: cannot find symbol
waehrung.liefereAusgangsWaehrung());
^
symbol: variable waehrung
location: class WaehrungsrechnerMain
Ich habe folgende Lösungsansätze schon erfolglos ausprobiert:
1. Benutze einen weiteren Parameter für die Methode (Zeile 30 im gesamten Code):
[JAVA=30]schreibeUmrechnungen(double geldbetrag, Waehrungsrechner[] waehrung)[/code]
Das funktioniert auch soweit, nur dass ich dann in der Aktivierung der Methode bei *main* (Zeile 12)
[JAVA=12]schreibeUmrechnungen(derGeldbetrag);[/code]
in Probleme gerate, da ein weiterer Parameter gefordert wird.
2. Ich habe versucht mit *get* die Variable zu holen, d.h. in der *schreibeUmrechnungen* Methode vor der
*for*-Schleife (Zeile 31) noch hinzugefügt:
In diesem Fall erkannte der Kompiler die Variable auch nicht.
Ich stehe also ein bisschen auf dem Schlau, insbesondere, weil ich noch nicht häufig mit Arrays programmiert habe. (Eventuell liegt da auch genau die Lösung des Problems, nämlich, dass der Kompiler nicht erkennt, dass es sich bei "waehrung" um einen Array handelt.)
Ich hoffe, Ihr habt bessere Ideeen als ich. Danke schon einmal im Voraus Und hier natürlich der Quellcode:
ich habe folgendes Problem: Wenn ich WaehrungsrechnerMain.java kompilieren möchte, findet der Kompiler die Variable "waehrung" in der Methode *schreibeUmrechnungen* (Zeile 30) nicht. (Folgender Error wird ausgegeben (für insgesamt 17 verschiedene Zeilen)):
WaehrungsrechnerMain.java:58: error: cannot find symbol
waehrung.liefereAusgangsWaehrung());
^
symbol: variable waehrung
location: class WaehrungsrechnerMain
Ich habe folgende Lösungsansätze schon erfolglos ausprobiert:
1. Benutze einen weiteren Parameter für die Methode (Zeile 30 im gesamten Code):
[JAVA=30]schreibeUmrechnungen(double geldbetrag, Waehrungsrechner[] waehrung)[/code]
Das funktioniert auch soweit, nur dass ich dann in der Aktivierung der Methode bei *main* (Zeile 12)
[JAVA=12]schreibeUmrechnungen(derGeldbetrag);[/code]
in Probleme gerate, da ein weiterer Parameter gefordert wird.
2. Ich habe versucht mit *get* die Variable zu holen, d.h. in der *schreibeUmrechnungen* Methode vor der
*for*-Schleife (Zeile 31) noch hinzugefügt:
Java:
WaehrungsrechnerMain.get(waehrung);
Ich stehe also ein bisschen auf dem Schlau, insbesondere, weil ich noch nicht häufig mit Arrays programmiert habe. (Eventuell liegt da auch genau die Lösung des Problems, nämlich, dass der Kompiler nicht erkennt, dass es sich bei "waehrung" um einen Array handelt.)
Ich hoffe, Ihr habt bessere Ideeen als ich. Danke schon einmal im Voraus Und hier natürlich der Quellcode:
Java:
public class WaehrungsrechnerMain
{
private WaehrungsrechnerMain()
{
}
public static void main(String[] args)
{
System.out.format("%n Test eines Waehrungsrechners %n");
String dieEingabeAufforderung = "Welcher Betrag soll umgerechnet werden? ";
double derGeldbetrag = MeineEingabe.erfasseDouble(dieEingabeAufforderung);
schreibeUmrechnungen(derGeldbetrag);
}
private static Waehrungsrechner[] erzeugeWaehrungsRechner(Waehrungsrechner[]
rechner)
{
Waehrungsrechner[] waehrung = new Waehrungsrechner[6]; //waehrung blöd
waehrung[0] = new Waehrungsrechner("Euro", "US-Dollar", 1.39);
waehrung[1] = new Waehrungsrechner("Euro", "British Pound", 0.83);
waehrung[2] = new Waehrungsrechner("Euro", "CanadianDollar", 1.55);
waehrung[3] = new Waehrungsrechner("US-Dollar", "BritishPound", 0.6);
waehrung[4] = new Waehrungsrechner("BritishPound", "CanadianDollar", 1.85);
waehrung[5] = new Waehrungsrechner("CanadianDollar", "US-Dollar", 0.89);
return waehrung;
}
private static void schreibeUmrechnungen(double geldbetrag)
{
for (int i = 0; i < waehrung.length; i++)
{
waehrung[i].rechneBetragInZielWaehrung(geldbetrag);
waehrung[i].rechneBetragInAusgangsWaehrung(geldbetrag);
waehrung[i].rechneBetragInZielWaehrung(geldbetrag);
waehrung[i].rechneBetragInAusgangsWaehrung(geldbetrag);
System.out.format("%n Kurs: 1.00 %1$-20s = %2$20.2f %3$s",
waehrung[i].liefereAusgangsWaehrung(),
waehrung[i].liefereKursVonAusgangsInZielWaehrung(),
waehrung[i].liefereZielWaehrung());
System.out.format("%n Kurs: 1.00 %1$-20s = %2$20.2f %3$s",
waehrung[i].liefereZielWaehrung(),
waehrung[i].liefereKursVonZielInAusgangsWaehrung(),
waehrung[i].liefereAusgangsWaehrung());
System.out.format("%n %1$.2f %2$-20s = %3$20.2s %4$s",
geldbetrag, waehrung[i].liefereAusgangsWaehrung(),
waehrung[i].rechneBetragInZielWaehrung(geldbetrag),
waehrung[i].liefereZielWaehrung());
System.out.format("%n %1$.2f %2$-20s = %3$20.2f %4$s",
geldbetrag, waehrung[i].liefereZielWaehrung(),
waehrung[i].rechneBetragInAusgangsWaehrung(geldbetrag),
waehrung[i].liefereAusgangsWaehrung());
System.out.format("%n");
}
}
}