Array

philip93

Mitglied
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.



Java:
// 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");
}
}
}
}
 

philip93

Mitglied
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

Top Contributor
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

Mitglied
Java:
// 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

Top Contributor
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.

Java:
...
//(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

Mitglied
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.

Java:
...
//(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;
}

wo muss dann die if abfrage stehen?
 

Landei

Top Contributor
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

Mitglied
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

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

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

Java:
// 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.
 

Landei

Top Contributor
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

Mitglied
Java:
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?
 
S

SlaterB

Gast
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

Mitglied
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.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Sowas nennt sich "Schleife"
Java:
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:
Code:
if(arrVersuche.forall(_ == 2)){ ... //Scala 

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

philip93

Mitglied
Sowas nennt sich "Schleife"
Java:
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:
Code:
if(arrVersuche.forall(_ == 2)){ ... //Scala 

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

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

Java:
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
 
S

SlaterB

Gast
Java:
if (arrVersuche[0] == 2) && .... (arrVersuche[2]==2)) {
..
}
entspricht doch exakt dem Vorschlag
Java:
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

Mitglied
Java:
if (arrVersuche[0] == 2) && .... (arrVersuche[2]==2)) {
..
}
entspricht doch exakt dem Vorschlag
Java:
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?

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
 
Zuletzt bearbeitet:
S

SlaterB

Gast
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

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

philip93

Mitglied
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?
 

Oben