# Array



## philip93 (4. Jan 2010)

Ich hab ein Programm mit zwei Arrays. Eines mit Namen und eines mit Orten. Und wenn jeder zweimal in einem Ort war, soll sich das Programm beenden.




```
// Jeder Springer darf nur zweimal in einem Ort springen
// Wenn jeder Springer in jedem Ort gesprungen ist, soll eine Gesamtwertung kommen, wo der Name und die Gesamtpunktezahl steht

import java.util.*;
import java.io.*;
public class Skisprung
{
public static String [] arrSkispringer = {"Ahonen","Ammann","Bodmer","Loitzl","Schlierenzauer"};
public static String [] arrSprungort = {"Bischofshofen","Garmisch","Innsbruck","Obersdorf","Planica"};
public static double [] arrWeite = {137.00,140.00,130.00,140.00,215.00};
public static double [] arrPunkte = {0,0,0,0,0};
public static int [] arrVersuche = {0,0,0,0,0};
public static double weite;
public static double halt1;
public static double halt2;
public static double halt3;
public static double halt4;
public static double halt5;
public static double faktor = 1.8;
public static double gesamtpunkte = 0;
public static String name;
public static double K;
public static double gesamtpunkteW=0;
public static int versuche;
public static void main (String[]args)
	{


berechnung();




}

public static void berechnung()
	{
		while (true)
		{
try
			{
				BufferedReader eingabe;
	eingabe = new BufferedReader (new InputStreamReader(System.in));
for(int x = 0; x < arrSkispringer.length; x++) {
						System.out.println(arrSkispringer[x]);
			}
System.out.println("Springer auswählen auswählen:");
	name = eingabe.readLine();
int index = Arrays.binarySearch(arrSkispringer,name);
if((index < 0) || (index > arrSkispringer.length))
{
	System.out.println("Springer nicht vorhanden");
versuche++;
for (int x = 0; x < arrSkispringer.length;x++)
	{
		System.out.println(arrSkispringer[x]);
	}
}
System.out.println(" ");
for (int y = 0; y<arrSprungort.length;y++)
{
System.out.println(arrSprungort[y]);
}
System.out.println("Ort auswählen: ");
String Ort = eingabe.readLine();
int index2 = Arrays.binarySearch(arrSprungort, Ort);


System.out.println(arrWeite[index2]);
System.out.println("Weite angeben");
weite = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter1");
halt1 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter2");
halt2 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter3");
halt3 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter4");
halt4 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter5");
halt5 = Double.parseDouble(eingabe.readLine());




if (weite>arrWeite[index2])
{
K = 60.0;
arrPunkte[index]+= ((K+(weite-arrWeite[index2])*faktor)+halt1+halt2+halt3+halt4+halt5);
}
else
{
	K  = 0;
	arrPunkte[index] = ((K+(weite-arrWeite[index2])*faktor)+halt1+halt2+halt3+halt4+halt5);
}
for (int x = 0;x<arrSkispringer.length;x++)
{
System.out.println(arrSkispringer[x] + " hat " + arrPunkte[x] + "Punkte");
}









System.out.println(" ");
}
catch(IOException e)
	{
		System.out.println("Eingabefehler");
	}
	catch (NumberFormatException e)
	{
		System.out.println("Bitte nur Zahlen eingeben");
}
}
}
}
```


----------



## Der Müde Joe (4. Jan 2010)

Ok. Und du hast auch eine Frage?


----------



## philip93 (4. Jan 2010)

Ja. Wie kann man machen, dass der Springer nur zweimal in einem Ort springen kann und wenn jeder zweimal in jeden Ort gesprungen ist, das Programm aus ist. Mit einen Angabe. Muss nämlich das Programm am Freitag vorstellen


----------



## Der Müde Joe (4. Jan 2010)

Wenn du nur mit Arrays arbeiten willst.
ein Array int[][] mit Springer x Ort (Matrix). Wenn in allen Feldern 2 steht ists fertig.

Mit Objekten würd sich das sicher auch schön machen lasse.


----------



## philip93 (4. Jan 2010)

Den genauen Code bitte, und wo der stehen muss


----------



## SlaterB (4. Jan 2010)

na ob das wer macht 
jedenfalls nun nach 'Hausaufgaben' verschoben


----------



## faetzminator (4. Jan 2010)

http://www.java-forum.org/hausaufgaben/63088-5-1-2-phasen-beim-erschleichen-loesungen-fuer-aufgaben.html


----------



## nrg (5. Jan 2010)

philip93 hat gesagt.:


> Den genauen Code bitte, und wo der stehen muss




die "93" lässt keine erwartungen offen.....


----------



## faetzminator (5. Jan 2010)

Hey, hey nicht so frech, ich bin auch nicht viel älter - bzw. war genau so jung, als ich mich hier angemeldet hab :bae:


----------



## nrg (5. Jan 2010)

aber nicht so dreist


----------



## ARadauer (5. Jan 2010)

wie soll ausgewählt werden wo einer springt? per zufall oder eingabe?

Habt ihr schon objekte verwendet?


----------



## philip93 (5. Jan 2010)

```
// Jeder Springer darf nur zweimal in einem Ort springen
// Wenn jeder Springer in jedem Ort gesprungen ist, soll eine Gesamtwertung kommen, wo der Name und die Gesamtpunktezahl steht

import java.util.*;
import java.io.*;
public class Skisprung
{
public static String [] arrSkispringer = {"Ahonen","Ammann","Bodmer","Loitzl","Schlierenzauer"};
public static String [] arrSprungort = {"Bischofshofen","Garmisch","Innsbruck","Obersdorf","Planica"};
public static double [] arrWeite = {137.00,140.00,130.00,140.00,215.00};
public static double [] arrPunkte = {0,0,0,0,0};
public static int [] arrVersucheBi = {2,2,2,2,2};
public static int [] arrVersucheGa = {2,2,2,2,2};
public static int [] arrVersucheIn = {2,2,2,2,2};
public static int [] arrVersucheOb = {2,2,2,2,2};
public static int [] arrVersuchePl = {2,2,2,2,2};
public static double weite;
public static double halt1;
public static double halt2;
public static double halt3;
public static double halt4;
public static double halt5;
public static double faktor = 1.8;
public static double gesamtpunkte = 0;
public static String name;
public static double K;
public static double gesamtpunkteW=0;
public static int versuche;
public static void main (String[]args)
	{





Anzeige();



berechnung();



}

public static void berechnung()
	{
		while (true)
		{
try
			{
				BufferedReader eingabe;
	eingabe = new BufferedReader (new InputStreamReader(System.in));
for(int x = 0; x < arrSkispringer.length; x++) {
						System.out.println(arrSkispringer[x]);
			}
System.out.println("Springer auswählen auswählen:");
	name = eingabe.readLine();
int index = Arrays.binarySearch(arrSkispringer,name);
if((index < 0) || (index > arrSkispringer.length))
{
	System.out.println("Springer nicht vorhanden");
versuche++;
for (int x = 0; x < arrSkispringer.length;x++)
	{
		System.out.println(arrSkispringer[x]);
	}
}
System.out.println(" ");
for (int y = 0; y<arrSprungort.length;y++)
{
System.out.println(arrSprungort[y]);
}
System.out.println("Ort auswählen: ");
String Ort = eingabe.readLine();
int index2 = Arrays.binarySearch(arrSprungort, Ort);


System.out.println(arrWeite[index2]);
System.out.println("Weite angeben");
weite = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter1");
halt1 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter2");
halt2 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter3");
halt3 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter4");
halt4 = Double.parseDouble(eingabe.readLine());
System.out.println("Punkte Richter5");
halt5 = Double.parseDouble(eingabe.readLine());





if (weite>arrWeite[index2])
{
K = 60.0;
arrPunkte[index]+= ((K+(weite-arrWeite[index2])*faktor)+halt1+halt2+halt3+halt4+halt5);



}
else
{
	K  = 0;
	arrPunkte[index] = ((K+(weite-arrWeite[index2])*faktor)+halt1+halt2+halt3+halt4+halt5);

}
for (int x = 0;x<arrSkispringer.length;x++)
{
System.out.println(arrSkispringer[x] + " hat " + arrPunkte[x] + "Punkte");

}














System.out.println(" ");
}
catch(IOException e)
	{
		System.out.println("Eingabefehler");
	}
	catch (NumberFormatException e)
	{
		System.out.println("Bitte nur Zahlen eingeben");
}
}
}



public static void Anzeige()

{


	for(int x = 0; x < arrSkispringer.length; x++) {
							System.out.println(arrSkispringer[x]);


			}

			System.out.println(" ");


}
}
```


Wir müssen durch Eingabe festlegen wer wo springt. 

Ich hab jetzt für jeden Ort ein Array mit 2 Versuchen angelegt, aber wenn ich schreibe, dass wenn der Index vom 1 Springer gleich 0 ist und der index vom sprungort gleich 0 ist dann soll vom ersten versuche vom 1. sprungort eines abgezogen werden, aber das funktioniert nicht.


Ich brauch eure Hilfe ganz dringend. Ich steh zwischen 3-4 in AP und wenn ich einen 2er bekomm bekomm ich noch den 3er ins Zeugnis.



Wir müssen mit Arrays arbeiten. Mit Objekten, haben wir vor Weihnnachten kurz angefangen


----------



## Landei (5. Jan 2010)

Wie schon der Müde Joe geschrieben hat, solltest du ein zweidimensionales Array verwenden. Du brauchst es nicht einmal zu initialisieren, da es automatisch mit 0 gefüllt wird.


```
...
//(nach den beiden anderen Arrays)
//arrVersuche[Index Ort][Index Springer]
public static int [][] arrVersuche = new int[arrSprungort.length][arrSkispringer.length];
...
//Wenn im ixten Ort der ypsilonte Springer springt (beides natürlich ab 0 und nicht ab 1 gezählt):
if(arrVersuche[x][y] > 2) {
   //Anzahl Sprünge überschritten
} else {
   //Sprung dazuzuzählen
   arrVersuche[x][y] += 1;
}
```


----------



## philip93 (5. Jan 2010)

Wie geht das weiter, dass der Springer nur zweimal im Ort springen kann?


----------



## philip93 (5. Jan 2010)

Landei hat gesagt.:


> Wie schon der Müde Joe geschrieben hat, solltest du ein zweidimensionales Array verwenden. Du brauchst es nicht einmal zu initialisieren, da es automatisch mit 0 gefüllt wird.
> 
> 
> ```
> ...



wo muss dann die if abfrage stehen?


----------



## Landei (5. Jan 2010)

So genau habe ich mir deinen Quelltext nicht angesehen. Irgendwo müssen sie ja springen, und da gehört es halt hin...

Und was passieren soll, wenn sie schon zweimal gesprungen sind, musst du dir halt noch überlegen.


----------



## philip93 (5. Jan 2010)

Landei hat gesagt.:


> So genau habe ich mir deinen Quelltext nicht angesehen. Irgendwo müssen sie ja springen, und da gehört es halt hin...
> 
> Und was passieren soll, wenn sie schon zweimal gesprungen sind, musst du dir halt noch überlegen.




Es geht aber nicht.



Es wäre sehr nett, wenn du dir meinen Quellcode anschaust und mir genau sagst, wo der Code hingehört.

Wenn der Springer im Ort zweimal gesprungen ist, soll beim nächsten Mal die Punktezahl vom letzten Mal erscheinen


----------



## Landei (5. Jan 2010)

Ach, jetzt verstehe ich erst, was du meinst...

Das geht ungefähr so (Gesamtauswertung fehlt noch):


```
// Jeder Springer darf nur zweimal in einem Ort springen
// Wenn jeder Springer in jedem Ort gesprungen ist, soll eine Gesamtwertung kommen, wo der Name und die Gesamtpunktezahl steht

import java.util.*;
import java.io.*;

public class Skisprung {
  private static final String[] arrSkispringer = {
      "Ahonen", "Ammann", "Bodmer", "Loitzl", "Schlierenzauer"};
  private static final String[] arrSprungort = {
      "Bischofshofen", "Garmisch", "Innsbruck", "Obersdorf", "Planica"};
  private static final double[] arrWeite = {137.00, 140.00, 130.00, 140.00, 215.00};
  private static final double faktor = 1.8;
  private static final int versuche = 2;
  
  public static void main(String[] args) {
    berechnen();
  }

  private  static void berechnen() {
    double[] arrPunkte = {0, 0, 0, 0, 0};
    int[][] arrVersuche= new int[arrSprungort.length][arrSkispringer.length];
    while (! alleGesprungen(arrVersuche)) {
      try {
        BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
        
        //Springer einlesen
        String name = null;
        int indexSpringer = -1;
        do {
          anzeigenSpringer();
          System.out.println("Springer auswählen:");
          name = eingabe.readLine();
          indexSpringer = Arrays.binarySearch(arrSkispringer, name);
          System.out.println(" ");
        } while ( (indexSpringer < 0) || (indexSpringer >= arrSkispringer.length));

        //Sprungort einlesen
        String ort = null;
        int indexOrt = -1;
        do {
          anzeigenSprungort();
          System.out.println("Ort auswählen: ");
          ort = eingabe.readLine();
          indexOrt = Arrays.binarySearch(arrSprungort, ort);
          System.out.println(" ");
        } while ( (indexOrt < 0) || (indexOrt >= arrSprungort.length));
        
        if(arrVersuche[indexOrt][indexSpringer] >= versuche) {
          System.out.println("Der Springer " + name + " ist in " + ort + 
                             " bereits " + versuche + "-mal gesprungen und hat insgesamt " + 
                             arrPunkte[indexSpringer] + " Punkte");
          System.out.println();
        } else {
          arrVersuche[indexOrt][indexSpringer] += 1;
          System.out.println(arrVersuche[indexOrt][indexSpringer] + ". Sprung");
          System.out.println();

          System.out.println(arrWeite[indexOrt]);
          System.out.println("Weite angeben");
          double weite = Double.parseDouble(eingabe.readLine());

          double halt = 0;
          for (int i = 1; i <= 5; i++) {
            System.out.println("Punkte Richter " + i);
            halt += Double.parseDouble(eingabe.readLine());
          }

          if (weite > arrWeite[indexOrt]) {
            arrPunkte[indexSpringer] += ( (60.0 + (weite - arrWeite[indexOrt]) * faktor) + halt);
          } else {
            arrPunkte[indexSpringer] += ((0.0 + (weite - arrWeite[indexOrt]) * faktor) +  halt);
          }
          
          for (int x = 0; x < arrSkispringer.length; x++) {
            System.out.println(arrSkispringer[x] + " hat " + arrPunkte[x] + "Punkte");
          }

          System.out.println();
        }
      } catch (IOException e) {
        System.out.println("Eingabefehler");
      } catch (NumberFormatException e) {
        System.out.println("Bitte nur Zahlen eingeben");
      }
    }
    //Hier Gesamtauswertung...
  }

  private static void anzeigenSpringer() {
    for (int x = 0; x < arrSkispringer.length; x++) {
      System.out.println(arrSkispringer[x]);
    }
    System.out.println(" ");
  }
  
  private static void anzeigenSprungort() {
    for (int y = 0; y < arrSprungort.length; y++) {
      System.out.println(arrSprungort[y]);
    }
  }
  
  private static boolean alleGesprungen(int[][] arrVersuche) {
    for(int x = 0; x < arrVersuche.length; x++) {
      int[] arrVersucheOrt = arrVersuche[x];
      for(int y = 0; y < arrVersucheOrt.length; y++) {
        if (arrVersucheOrt[y] < versuche) {
          return false;
        }
      }
    }
    return true;
  }
}
```

Übrigens ist es total lästig, immer die Namen der Springer und Orte eingeben zu müssen. Normalerweise numeriert man sowas durch, und lässt nur die Zahle eingeben. Aber ich hab's mal so gelassen.


----------



## philip93 (5. Jan 2010)

Vielen Dank. Aber kannst du das mir bitt erklären. Dass ich das nächste mal besser bescheid weiß


----------



## Landei (5. Jan 2010)

Statt einer endlosen while-schleife teste ich halt ab, ob noch Sprünge offen sind.

Wenn ich innerhalb der Schleife bin, und Springer und Ort ausgewählt sind, prüfe ich noch, ob in dieser Kombination schon die zwei Sprünge gemacht wurden.

Ein Array kann nicht nur ints und so enthalten, sondern auch Arrays von ints oder Arrays von Arrays von ints usw. Im Endeffekt hat man damit mehrdimensionale Arrays. Bei 2D ergibt das etwas wie ein Gitter oder eine Tabelle. Wenn man eine Variable bla[][] hat, spricht bla[3] das vierte Element von bla an, was allerdings selbst wieder ein Array ist. Nun kann man von diesem Array ebenfalls ein Element abfragen, also z.B. (bla[3])[4], oder kurz bla[3][4]. Das wiederum könnte man als das vierte Element der dritten Spalte (oder viertes Element der dritten Reihe) interpretieren. Mehr gibt es zu mehrdimensionalen Arrays eigentlich nicht zu sagen.

Alles klar?


----------



## philip93 (7. Jan 2010)

```
import java.util.*;
import java.io.*;
public class Skisprung
{
public static String [] arrSkispringer = {"Kofler","Loitzl"};
public static String [] arrSprungort = {"Bischofshofen"};
public static double [] arrWeite = {137.00};
public static double [] arrPunkte = {0,0,0,0,0};
public static double[] arrVersuche = {0,0};
public static String passwort;
public static double weite;
public static double halt1;
public static double halt2;
public static double halt3;
public static double halt4;
public static double halt5;
public static double faktor = 1.8;
public static double gesamtpunkte = 0;
public static String name;
public static double K;
public static double gesamtpunkteW=0;
public static int versuche=2;
public static int z;
public static String antwort;
public static int zaehler;
public static int kontrolle = 0;
public static void main (String[]args) throws IOException
	{
Login();
while (z<4)
{
BufferedReader eingabe;
	eingabe = new BufferedReader(new InputStreamReader(System.in));
if (passwort.equals("999"))
{
System.out.println("Was moechten sie tun: berechnen, springer anzeigen, orte anzeigen");
antwort = eingabe.readLine();
if (antwort.equals("berechnen"))
{
berechnung();
}
else if (antwort.equals("springer anzeigen"))
{
Anzeige();
}
else if(antwort.equals("orte anzeigen"))
{
	Ort();

}
else
{
zaehler++;
System.out.println("Falsch" + zaehler);
}
if (zaehler==3)
{
break;
}
}
else
{
System.out.println("Sie haben: " + z + " Versuche");
Login();
z++;
}
}
}
public static void berechnung()
{
while (true)
{
try
{
BufferedReader eingabe;
eingabe = new BufferedReader (new InputStreamReader(System.in));
for(int x = 0; x < arrSkispringer.length; x++) {
System.out.println(arrSkispringer[x]);
}
System.out.println("Springer auswählen");
System.out.println(" ");
name = eingabe.readLine();
int index = Arrays.binarySearch(arrSkispringer,name);
if((index < 0) || (index > arrSkispringer.length)){
System.out.println("Springer nicht vorhanden");
for (int x = 0; x < arrSkispringer.length;x++){
System.out.println(arrSkispringer[x]);
break;
}
}
System.out.println(" ");
for (int y = 0; y<arrSprungort.length;y++){
System.out.println(arrSprungort[y]);
}
System.out.println("Ort auswählen: ");
String Ort = eingabe.readLine();
System.out.println(" ");
int index2 = Arrays.binarySearch(arrSprungort, Ort);
if (arrVersuche[index] >=versuche)
{
System.out.println("Er ist bereits 2mal gesprungen und hat " + arrPunkte[index] + "Punkte");
}
else
{
System.out.println(arrWeite[index2]);
System.out.println("Weite angeben");
weite = Double.parseDouble(eingabe.readLine());
System.out.println(" ");
System.out.println("Punkte Richter1");
halt1 = Double.parseDouble(eingabe.readLine());
System.out.println(" ");
System.out.println("Punkte Richter2");
halt2 = Double.parseDouble(eingabe.readLine());
System.out.println(" ");
System.out.println("Punkte Richter3");
halt3 = Double.parseDouble(eingabe.readLine());
System.out.println(" ");
System.out.println("Punkte Richter4");
halt4 = Double.parseDouble(eingabe.readLine());
System.out.println(" ");
System.out.println("Punkte Richter5");
halt5 = Double.parseDouble(eingabe.readLine());
System.out.println(" ");
if (weite>arrWeite[index2]|| weite==arrWeite[index2]){
K = 60.0;
arrPunkte[index]+= ((K+(weite-arrWeite[index2])*faktor)+halt1+halt2+halt3+halt4+halt5);
arrVersuche[index]++;
}
else
{
K  = 30;
arrPunkte[index] = ((K+(arrWeite[index2]-weite)*faktor)+halt1+halt2+halt3+halt4+halt5);
arrVersuche[index]++;
}
for (int x = 0;x<arrSkispringer.length;x++)
{
System.out.println(arrSkispringer[x] + " hat " + arrPunkte[x] + "Punkte " + arrVersuche[x]);
}
}



if ((arrVersuche[0] ==2) && (arrVersuche[1] == 2) && (arrVersuche[2] == 2))
{

System.out.println("Wollen Sie nochmal spielen? (Ja, Nein");
antwort = eingabe.readLine();
if (antwort.equals("Ja"))
{
berechnung();
}
else
{
break;
}
}
System.out.println(" ");
}
catch(IOException e)
{
System.out.println("Eingabefehler");
}
catch (NumberFormatException e){
System.out.println("Bitte nur Zahlen eingeben");
}
}
}
public static void Anzeige()
{
for(int x = 0; x < arrSkispringer.length; x++) {
System.out.println(arrSkispringer[x]);
}
System.out.println(" ");
}
public static void Login()
{
try
{
BufferedReader eingabe;
eingabe = new BufferedReader (new InputStreamReader(System.in));
System.out.println("Passwort:");
passwort = eingabe.readLine();
System.out.println(" ");
}
catch(IOException e)
{
System.out.println("Eingabefehler");
}
catch (NumberFormatException e){
System.out.println("Bitte nur Zahlen eingeben");
}
}
public static void Ort()
{
for (int x = 0; x<arrSprungort.length;x++)
{
System.out.println(arrSprungort[x]);
System.out.println(" ");
}
}
}
```

Ich hab jetzt eine eigene Version gemacht. Aber bei der Überprüfung ob jeder zweimal gesprungen ist habe ich Probleme. Ich will nicht immer schreiben , ober die Versuche von 1ten vom 2ten ... 2 sind.

Gibt es einen Programmcode, wo dies überprüft wird, egal wie viele Objekte ich im Array habe.

Und wie kann ich ein Objekt in Array mit hilfe der Tastautr schreiben?


----------



## SlaterB (7. Jan 2010)

geht es einen Tick genauer? um ungefähr welche der 180 Zeilen geht es,
was ist dort bisher wie umgesetzt, geht es um arrVersuche? hat das immer die Länge 2, welche Bedeutung hat dessen Inhalt?

allgemein hilft gegen 1, 2, 3 einzeln eine Schleife
for (i von bis)


----------



## philip93 (7. Jan 2010)

Ich hab ja eine Variable Versuche dekliniert. Und mit der wird überprüft, ob der Springer schon 2 mal gesprungen ist.

Immer wenn gesprungen wird, wird das Array arrVersuche um 1 erhöht. und wenn alle elemente im array gleich 2 sind soll eine meldung erscheinen.

Aber ich muss jedes Element einzeln überprüfen ob es gleich 2 ist. Aber geht das nicht mit irgendeinen Befehl, egal wie viele Elemente ich im Array Skispringer habe

Es geht um Zeile 144.


----------



## Landei (7. Jan 2010)

Sowas nennt sich "Schleife"

```
boolean alleHabenZwei = true; //denken wir erst einmal positiv
for(int i = 0; i < arrVersuche.length; i++)  
   if(arrVersuche[i] != 2) { alleHabenZwei = false; break; } //wenn's irgendwo nicht stimmt, denken wir um
if (alleHabenZwei) {
...
```

Übrigens: Deine Denkweise ist gar nicht so falsch. In vielen anderen (vernünftigeren) Sprachen (Ruby, Python, Groovy, Scala, Haskell...) ginge sowas, und in Java 7 wird sowas zumindenst prinzipiell möglich sein:

```
if(arrVersuche.forall(_ == 2)){ ... //Scala 

if(arrVersuche.forall(#(int x)(x == 2)){ ... //Java 7 FCM-Vorschlag
```


----------



## philip93 (7. Jan 2010)

Landei hat gesagt.:


> Sowas nennt sich "Schleife"
> 
> ```
> boolean alleHabenZwei = true; //denken wir erst einmal positiv
> ...



Aber wenn ich am Schluss überprüfen möchte, muss ich immer schreiben


```
if (arrVersuche[0] == 2) && .... (arrVersuche[2]==2))
```


Wenn ich jetzt 30 Springer hab, muss ich das vom 1. Springer bis zum 30. Springer machen.


Muss dieses Programm morgen vorstellen und den anderen auch das Programm selber machen lassen


----------



## SlaterB (7. Jan 2010)

```
if (arrVersuche[0] == 2) && .... (arrVersuche[2]==2)) {
..
}
```
entspricht doch exakt dem Vorschlag

```
boolean alleHabenZwei = true; //denken wir erst einmal positiv
for(int i = 0; i < arrVersuche.length; i++)  {
   if(arrVersuche[i] != 2) { alleHabenZwei = false; break; } //wenn's irgendwo nicht stimmt, denken wir um
}
if (alleHabenZwei) {
..
}
```
oder wo liegt das Problem?


----------



## philip93 (7. Jan 2010)

SlaterB hat gesagt.:


> ```
> if (arrVersuche[0] == 2) && .... (arrVersuche[2]==2)) {
> ..
> }
> ...



Wie kann ich die Versuche und die Punkte zurücksetzen. Ich hab nämlich in der if eine if eingebaut, wo gefragt wird ob er nochmal spielen will oder nicht. und wenn er sagt nochmal spielen, werden bei mir die versuche und punkte vom letzten mal übernommen


----------



## SlaterB (7. Jan 2010)

was bedeuetet dieser Satz, möchtest du mitteilen, dass mit diesem Code dein Programm nicht wie gewünscht funktioniert?
das kann ich persönlich pauschal nicht nachvollziehen, Code wäre sinnvoll,

der von 12:40 ist zweifelhaft, da gibts ja nichtmal 3 Springer, nur 2


----------



## Landei (7. Jan 2010)

alleHabenZwei wird dann und nur dann wahr, wenn alle Elemente des Arrays gleich 2 sind. Das ist genau die Bedingung in Zeile 144.


----------



## philip93 (7. Jan 2010)

Das Array Versuche hat bei mir einige Elemente zu viel gehabt. Jetzt funktonierte es.


Gibt es mit meinen Code auch eine Möglichkeit mit normalen Arrays auf mehrern Schanzen zu springen. Wie auf der 4 Schanzentournee?


----------

