# variable initialisieren



## FX202 (1. Nov 2015)

grüß gott,
ich bin ein noob.
hab folgenden teil meiner hü:

Legen Sie folgende Variablen *außerhalb *der main-Methode als statische Variablen an (z.B.: static int ...):
a) eine Variable namens _amount1_, die eine Gleitkommazahl (mit doppelter Genauigkeit) aufnehmen kann
b) eine Variable namens _amount2_, die eine Gleitkommazahl (mit doppelter Genauigkeit) aufnehmen kann
c) eine Konstante namens _INTEREST_RATE mit doppelter Genauigkeit_, die Sie auf 1.25 setzen.
d) eine Konstante namens _LOW_INTEREST_RATE mit doppelter Genauigkeit_, die Sie auf 1.15 setzen.
Initialisieren Sie die Variable _amount1 _mit einem Wert unter 1000 und _amount2_ mit einem Wert von 1000 oder größer.

mein code dazu sieht fürs erste so aus:

```
public class Interest {

  static double amount1;
  static double amount2;
  static final double INTEREST_RATE = 1.25;
  static final double LOW_INTEREST_RATE = 1.15;
  static double zinsamount;

public static void main(String[] args) {
  
  if (amount1 < 1000);
  if (amount2 >= 1000);
  
  zinsamount = calculateMonthlyInterest(amount1);
  zinsamount = calculateMonthlyInterest(amount2);
  zinsamount = calculateAnnualInterest(amount1);
  zinsamount = calculateAnnualInterest(amount2);
  zinsamount = calculate5YearsInterest(amount1);
  zinsamount = calculate5YearsInterest(amount2);
}
```

Unser Lehrer prüft das mit einem Unittest, wir laden die Datei hoch und können sehen was richtig oder falsch ist.
mein problem ist nun dass er mir den schreibt:

test01_Attributes Der Wert von Feld amount2 in Interest ist zu klein!

und ich habe keine ahnung was falsch sein soll.
ich wäre für einen rat sehr dankbar,

lg

wolfgang


----------



## MWin123 (1. Nov 2015)

Verwende doch bitte Code Tags.

Schau dir mal das hier an:

```
if (amount1 < 1000);
if (amount2 >= 1000);
```
Was soll das bringen?


----------



## FX202 (1. Nov 2015)

amount1  wert kleiner 1000?
amount2 wert größergleich 1000?

wenn ich das ohne if setz wird die zeile rot und es geht nicht.


----------



## MWin123 (1. Nov 2015)

Ja, du prüfst nur ob amount1 oder amount2 kleiner/größer ist.
Außer der Prüfung passiert nichts, also egal ob true or false.


----------



## FX202 (1. Nov 2015)

hmpf....
ok.  hab den teil rausgenommen und es hat sich nichts geändert.


```
if (amount1 < 1000);
if (amount2 >= 1000);
```

aber wie sage ich dass amount1 kleiner als 1000.00 ist?
ich dachte ich hätt mit dem code oben gelöst...


----------



## FX202 (1. Nov 2015)

```
public static double calculateMonthlyInterest(double amount1) {
        zinsamount = amount1 * INTEREST_RATE / 100 * 1 / 12;

        System.out.println("Zinsen für ein Monat bei " + amount1
                + ": " + zinsamount);

        return zinsamount;

    }
```

so sieht eine meiner methoden aus.


----------



## MWin123 (1. Nov 2015)

FX202 hat gesagt.:


> hab den teil rausgenommen und es hat sich nichts geändert.


Genau, der Code hat nichts "gemacht".

Ich denke mit "Initialisieren Sie die Variable _amount1 _mit einem Wert unter 1000 und _amount2_ mit einem Wert von 1000 oder größer." ist gemeint, dass du ein neues Objekt Interest erstellst und die beiden Werte setzt.


----------



## FX202 (1. Nov 2015)

tjo das is das problem ich weiß ned wie ich das machen soll.
amount1 <= 1000,00; geht ned ich habs auf paar anderen arten auch probiert ich schaffs ned.
bin wohl zu blöd .
dachte ned das es so schwer eine variable so zu initialisieren.

trotzdem danke für den versuch.


----------



## Bitfehler (1. Nov 2015)

Eine Prüfung, ob der Wert einer Variablen größer oder kleiner einem Vergleichswert ist, scheint laut Aufgabe gar nicht notwendig zu sein. Die Aufgabe sagt nur aus, das du die Werte entsprechend fest setzen sollst.



FX202 hat gesagt.:


> test01_Attributes Der Wert von Feld amount2 in Interest ist zu klein!



Welchen Wert hat denn amount2 bei dir? Aus dem Code-Fragmenten ist nicht zu erkennen, ob du überhaupt einen Wert setzt. Wird keiner gesetzt, dann kann amount2 auch nicht über 1000 sein, sodass der Test fehlschlägt.

//Initilisieren einer Var a
int a = 2;


----------



## MWin123 (1. Nov 2015)

`amount1 <= 1000.00;` setzt keine Variable, das ist ein kleiner gleich Vergleich.
Außerdem kann ein double kein Intervall als Wert haben.


```
public static void main(String[] args) {
   Interest interest = new Interest();
   interest.amount1 = 500;
   interest.amount2 = 1000;
}
```


----------



## InfectedBytes (1. Nov 2015)

FX202 hat gesagt.:


> Legen Sie folgende Variablen *außerhalb *der main-Methode als statische Variablen an (z.B.: static int ...):
> Initialisieren Sie die Variable _amount1 _mit einem Wert unter 1000 und _amount2_ mit einem Wert von 1000 oder größer.




```
public class Interest {
  static double amount1 = 500;
  static double amount2 = 1500;
  static final double INTEREST_RATE = 1.25;
  static final double LOW_INTEREST_RATE = 1.15;
```


----------

