Hallo,
ich habe mir die Frage gestellt ob es grundsätzlich immer sinnvoll ist Variablen außerhalb von Schleifen zu deklarieren oder ob das egal ist? Bezogen auf das Codebeispiel läuft das Programm ja ewig, bis es beendet wird. Wird dann mit jedem Schleifendurchlauf neuer Speicherplatz durch die Variablen und den Scanner usw. belegt, was ein Problem sein kann? Dann würde es ja Sinn machen diese vorher also außerhalb der while-Schleife zu deklarieren. Oder ist das egal? Wann werden denn Variablen grundsätzlich wieder freigegeben durch den Garbage Collector?
Vielen Dank für Eure Antworten!
Beispielcode:
ich habe mir die Frage gestellt ob es grundsätzlich immer sinnvoll ist Variablen außerhalb von Schleifen zu deklarieren oder ob das egal ist? Bezogen auf das Codebeispiel läuft das Programm ja ewig, bis es beendet wird. Wird dann mit jedem Schleifendurchlauf neuer Speicherplatz durch die Variablen und den Scanner usw. belegt, was ein Problem sein kann? Dann würde es ja Sinn machen diese vorher also außerhalb der while-Schleife zu deklarieren. Oder ist das egal? Wann werden denn Variablen grundsätzlich wieder freigegeben durch den Garbage Collector?
Vielen Dank für Eure Antworten!
Beispielcode:
Java:
public static void main(String[] args) {
while (true) {
Scanner scan = new Scanner(System.in);
// Eingabeaufforderungen für Mietkosten, Einkommen und Anzahl Kinder
System.out.print("Bitte geben Sie die monatlichen Mietkosten ein: ");
double mietkosten = scan.nextDouble();
System.out.print("Bitte geben Sie das monatliche Einkommen ein: ");
double einkommen = scan.nextDouble();
System.out.print("Bitte geben Sie die Anzahl der Kinder ein: ");
int anzahlKinder = scan.nextInt();
// Berechnung des Wohngelds
double wohngeld = berechneWohngeld(mietkosten, einkommen);
// Berechnung des Kinderzuschlags
double kinderzuschlag = berechneKinderzuschlag(anzahlKinder);
// Pruefung Gesamtzahlung
double gesamtzahlung = berechneGesamtzahlung(mietkosten, kinderzuschlag, wohngeld);
// Ausgabe des berechneten Wohngelds (inkl. Kinderzuschlag)
ausgabeWohngeld(gesamtzahlung);
}
}