# for-Schleife mit if-Abfrage; Erstellen eines Feldes



## Spycner (15. Dez 2014)

Hi, 
einfach nur kurz zur Erklärung: In der Schule haben wir Projekte zugewiesen bekommen (bei meinem Handelt es sich um vier Fahrer der Formel 1 die als Objekte erstellt werden und die Attribute _Name_,_Vorname_, Platzierung von den _Rennen 1-8_ zugewiesen werden) mit dem ich soweit auch fertig bin, aber ich könnte Hilfe bei zwei Aufgabenstellungen gebrauchen.

Die erste Aufgabenstellung lautet "Die Berechnung der Gesamtpunktzahlen der Fahrer erfolgt nach einem Schlüssel,der im Internet zu finden ist. Die Gesamtpunktzahl wird im dem entsprechenden Attribut eingetragen." - 
Das Attribut habe ich erstellt und die Methode habe ich mit einer for-schleife erstellt die die anzahl der Fahrer durchläuft und für Jeden der Fahrer die Gesamtpunktzahl errechnet durch if-Abfragen die einen Integer erhöhen. Sind alle acht Rennergebnisse mit den Platzierungen (Platzierungen gehen von 1-11 und 0. 0 entspricht einem nicht abgeschlossenen Rennen) verglichen und der Integer dementsprechend erhöht wird der Int dem Attribut für den jeweiligen Fahrer zugewiesen. 
(Punkteverteilung folgt: 1 - 25P, 2 - 18P, 3 - 15P, 4 - 12P, 5 - 10P, 6 - 8P, 7 - 6P, 8 - 4P, 9 - 2P, 10 - 1P, 11&0 erhalten keine Punkte)
Diese Methode funktioniert auch, das Problem liegt hierbei das der Code mehr als 500000 Zeilen fasst und mein Pc mehrere Minuten braucht um die Methode auszuführen oder zu compilieren. Was ich bräuchte wäre ein Tipp wie ich die If-abfrage oder die komplette Methode drastisch verkürzen kann.

Die zweite Aufgabe lautet :"Implementieren sie die Klasse Formel1, in der alle Fahrer in einem Feld gespeichert sind, wobei der Feldindex der Startnummer des jeweiligen Fahrers entspricht (Der Feldindex 0 wird nicht belegt)."-
Die Startnummern entspricht der zugewiesenen Nummer beim Erstellen der einzelnen Objekte (Fahrer) insgesamt werden 4 Fahrer erstellt, sprich Startnummer 1-4. Mein Problem bei dieser Aufgabe liegt darin, das wir ein Feld noch nicht im Unterricht behandelt haben und ich bisher nur aus anderen Foren ziehen konnte, dass das Feld ein Begriff für ein Array ist jedoch ist mir nicht schlüssig wie das Array für diese Aufgabe anzulegen ist.


Attribute der Objekte (Fahrer) sind:

```
public String Vorname;
  public String Name;
  public int Platzierung1;
  public int Platzierung2;
  public int Platzierung3;
  public int Platzierung4;
  public int Platzierung5;
  public int Platzierung6;
  public int Platzierung7;
  public int Platzierung8;
  public int Gesamtpunktzahl;
```

Die einzelnen Fahrer haben folgende Werte(Vorname;Name;Platzierung 1;...;Platzierung 8, Gesamtpunktzahl):

```
meineFahrer.anlegen("Fernando","Alonso",1,2,1,2,2,1,1,1,0);
    meineFahrer.anlegen("Michael","Schuhmacher",2,6,0,1,1,2,5,2,0);
    meineFahrer.anlegen("Kimi","Räikkönen",3,0,2,5,4,5,0,3,0);
    meineFahrer.anlegen("Jeson","Button",4,3,10,7,0,6,11,0,0);
```

Danke für das lesen von meinem doch etwas langen Beitrag :rtfm:


----------



## Saheeda (15. Dez 2014)

Ich habe keine Ahnung, ob ich dich richtig verstanden habe, aber meinst du sowas?

Nur so interessehalber: die 500 000 Zeilen Code - was steckt dort alles drin?


```
public class Fahrer {
	public String Vorname;
	public int[] punkte;
public int gesamtwertung = 0;
	
	public Fahrer() {
		this.punkte = new int[8];
	}
	
	public int berechneGesamtwertung(){
		for(int i = 0; i<punkte.length; i++){
			switch(punkte[i]){
			case 1:
				this.gesamtwertung += 25; break;
			case 2:
				this.gesamtwertung += 18; break;
			case 3:
				this.gesamtwertung += 15; break;
			case 4:
				this.gesamtwertung += 12; break;
			case 5:
				this.gesamtwertung += 10; break;
			[...]
			}
		}
		
		return this.gesamtwertung;
	}
}
```


----------

