kaptain iglo
29-03-2009, 11:13
Hi,
ich habe folgende Aufgabe zu lösen:
Eingabe von 6 Zahlen. Es muss bei jeder Eingabe geprüft werden ob die Zahl schon eingeben wurde. Wenn ja, muss eine andere Zahl eingeben werden.
Ich habs jetzt so gelöst, bin aber auf einen Denkfehler gestossen.
Wenn ich mit dem Code unten eine doppelte Zahl eingebe, komme ich in die Schleife zur Aufforderung zur Eingabe einer anderen Zahl. Dort verbleibe ich so lange bis ich eine andere Zahl eingegeben habe. Was hier aber nicht überprüft wird ob diese eingegebene Zahl schon vorher eingegeben wurde.
Aber irgendwie kann ich da so gar nicht lösen (?), weil sich hier die Katze immer in den Schwanz beißt.
Hat mir jemand einen anderen Lösungsansatz?
import java.util.Scanner;
public class Eingabe
{
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
int i;
int z;
int[]zahlen = new int[5];
// Zahleneingabe
for(i=0; i<zahlen.length;i++)
{
System.out.print("Bitte geben Sie die " +(i+1) + ". Zahl ein: ");
zahlen[i] = sc.nextInt();
// Durchlaufe die Schleife und Prüfe
// System.out.println("Aktueller Zähler: "+i);
for(z=0;z<i;z++)
{
if(zahlen[i]==zahlen[z])
{
do
{
System.out.println("Meldung: die " +zahlen[i] +" ist bereits eingegeben worden");
System.out.print("Bitte geben Sie die " +(i+1) + ". Zahl ein: ");
zahlen[i] = sc.nextInt();
}
while(zahlen[i]==zahlen[0]);
}
}
}
}
}
ich habe folgende Aufgabe zu lösen:
Eingabe von 6 Zahlen. Es muss bei jeder Eingabe geprüft werden ob die Zahl schon eingeben wurde. Wenn ja, muss eine andere Zahl eingeben werden.
Ich habs jetzt so gelöst, bin aber auf einen Denkfehler gestossen.
Wenn ich mit dem Code unten eine doppelte Zahl eingebe, komme ich in die Schleife zur Aufforderung zur Eingabe einer anderen Zahl. Dort verbleibe ich so lange bis ich eine andere Zahl eingegeben habe. Was hier aber nicht überprüft wird ob diese eingegebene Zahl schon vorher eingegeben wurde.
Aber irgendwie kann ich da so gar nicht lösen (?), weil sich hier die Katze immer in den Schwanz beißt.
Hat mir jemand einen anderen Lösungsansatz?
import java.util.Scanner;
public class Eingabe
{
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
int i;
int z;
int[]zahlen = new int[5];
// Zahleneingabe
for(i=0; i<zahlen.length;i++)
{
System.out.print("Bitte geben Sie die " +(i+1) + ". Zahl ein: ");
zahlen[i] = sc.nextInt();
// Durchlaufe die Schleife und Prüfe
// System.out.println("Aktueller Zähler: "+i);
for(z=0;z<i;z++)
{
if(zahlen[i]==zahlen[z])
{
do
{
System.out.println("Meldung: die " +zahlen[i] +" ist bereits eingegeben worden");
System.out.print("Bitte geben Sie die " +(i+1) + ". Zahl ein: ");
zahlen[i] = sc.nextInt();
}
while(zahlen[i]==zahlen[0]);
}
}
}
}
}