# If else Verzweigungen in Array packen



## Hornhauer100 (26. Okt 2014)

Hallo,

ich habe hier folgende Aufgabe, wo man Punkte angeben sollte und dann gibt die Console die Note aus mit einer ewig langen if else Verzweigung gelöst. Gibt es die Möglichkeit, das alles in ein Array zu packen?


```
package Test;

public class TestatAfugabe2 {

	public static void main(String[] args) {
		
	double note = 0;
	double punkte;
	
	System.out.println("Bitte geben Sie Ihre erreicht Punktzahl ein (zwischen 0 und 120!)");
	punkte = EAM.rDouble();
	
	for (int i = 1; i == 1; i++)
	
	 				if (punkte < 60) {
	 					note = 5.0;
		             } else if (punkte >= 60 && punkte <= 65) {
		                 note = 4.0;
		             } else if (punkte > 65 && punkte <= 71) {
		                 note = 3.7;
		             } else if (punkte > 71 && punkte <= 77) {
		                 note = 3.3;
		             } else if (punkte > 77 && punkte <= 83) {
		                 note = 3.0;
		             } else if (punkte > 83 && punkte <= 89) {
		                 note = 2.7;
		             } else if (punkte > 89 && punkte <= 95) {
		                 note = 2.3;
		             } else if (punkte > 95 && punkte <= 101) {
		                 note = 2.0;
		             } else if (punkte > 101 && punkte <= 107) {
		                 note = 1.7;
		             } else if (punkte > 107 && punkte <= 113) {
		                 note = 1.3;
		             } else if (punkte > 113 && punkte <= 120) {
		                 note = 1.0;
		             }
	
	System.out.println(punkte + " " + "Punkte ergeben die Note:" + " " + note);
	
	}
}
```


----------



## Thallius (26. Okt 2014)

Ja

Gruss

Claus


----------



## chuxXo (27. Okt 2014)

Sicherlich  Definierst dir ein Array, mit der Größe deiner Notenanzahl und belegst die Felder mit deinen Noten


----------



## Joose (27. Okt 2014)

Hornhauer100 hat gesagt.:


> ```
> if (punkte < 60) {
> note = 5.0;
> } else if (punkte >= 60 && punkte <= 65) {
> ...



Kleiner Hinweis: Deine Abfragen "punkte > [ZAHL]" sind nicht notwendig.
Im 1.if prüfst du ob die Zahl kleiner 60 ist -> Note 5.0
Im 2.else-if musst du nicht extra prüfen ob die Zahl >=60 ist, wenn sie es nicht wäre hätte das 1.if schon "true" ergeben 

Dadurch ergibt sich folgendes if-elseif Konstrukt (Achtung beim 1.if wurde < 60 auf <=59 geändert damit überall ein <= ist)


```
if (punkte <= 59) {
	note = 5.0;
} else if (punkte <= 65) {
	note = 4.0;
} else if (punkte <= 71) {
	note = 3.7;
} else if (punkte <= 77) {
	note = 3.3;
} else if (punkte <= 83) {
	note = 3.0;
} else if (punkte <= 89) {
	note = 2.7;
} else if (punkte <= 95) {
	note = 2.3;
} else if (punkte <= 101) {
	note = 2.0;
} else if (punkte <= 107) {
	note = 1.7;
} else if (punkte <= 113) {
	note = 1.3;
} else if (punkte <= 120) {
	note = 1.0;
}
```

Für jede Note gibt es nun eine Obergrenze. Hier bietet sich eine Art Key-Value Paar an.
Vielleicht hilft dir das weiter.


----------



## Thallius (27. Okt 2014)

*Klugs******ermodean*

das letzte if(punkte <= 120) ist überflüssig

*Klugs******ermodeaus*

Gruß

Claus


----------

