Hallo, ich bin neu hier
ich habe ein Problem und hoffe, dass mir hier vielleicht einer helfen kann. Es fühlt sich an als wenn die Lösung denkbar einfach ist, aber ich hab irgendwie ein Brett vorm Kopf und bekomme es einfach nicht hin.
Zum Programm:
Es soll ein simples Bubblesort werden. Bist jetzt klappt es die Benutzereingaben zu empfangen und und in ein Array zu speichern. Diese werden dann (zur Zeit noch) unsortiert am Ende ausgegeben.
Zum Problem:
Die Überprüfung funktioniert nicht. Bei jeder Benutzeringabe soll eine Schleife das Array durchlaufen und wenn die eingegebene Zahl bereits eingegeben wurde wird der benutzer zu einer erneuten Eingabe aufgefordert. Wenn die zahl noch nicht eingegeben wurde, soll der die Boolean-Variable "check" auf true setzen und dann die nächste zahl erfragen, nachdem die alte Eingabe ins Array eingetragen wurde.
Wenn ich jedoch immer und immer wieder beispielsweise die Zahl 1 eintippe, speichert er die das erste mal ab, beim zweiten mal fordert er eine neue Eingabe und beim 3. mal speichert der die 1 in das nächste Array Feld... Danach fordert er 2 mal eine neue eingabe, danach trägt er wieder eine ein, danach will er 3 mal eine neue Eingabe und die danach speichert er wieder ab und am ende kommt 1111111111 raus... und genau das DARF nicht passieren -.-
Die Ausgabe sieht dann so aus:
und so weiter.
Der Code ist bis jetzt Folgender:
Ich überlege die Check funktion in ein andere Objekt auszulagern (ich habe bis vor kurzem nur prozedural in C programmiert)... allgemein hab ich eh das gefühl, dass mit meinem Programm im objektorientierten Sinne nicht alles so ist, wie es sein sollte... aber das ist ja erstmal nebensächlich.... Ich möchte ersteinmal das Problem bei der Eingabeüberprüfung lösen und werde im nachinein versuchen das Problem in Objekte umzubauen... die Methoden bleiben ja die selben dann... glaube ich... Vielleicht kann mir ja jemand helfen
Danke im vorraus
Benobi
ich habe ein Problem und hoffe, dass mir hier vielleicht einer helfen kann. Es fühlt sich an als wenn die Lösung denkbar einfach ist, aber ich hab irgendwie ein Brett vorm Kopf und bekomme es einfach nicht hin.
Zum Programm:
Es soll ein simples Bubblesort werden. Bist jetzt klappt es die Benutzereingaben zu empfangen und und in ein Array zu speichern. Diese werden dann (zur Zeit noch) unsortiert am Ende ausgegeben.
Zum Problem:
Die Überprüfung funktioniert nicht. Bei jeder Benutzeringabe soll eine Schleife das Array durchlaufen und wenn die eingegebene Zahl bereits eingegeben wurde wird der benutzer zu einer erneuten Eingabe aufgefordert. Wenn die zahl noch nicht eingegeben wurde, soll der die Boolean-Variable "check" auf true setzen und dann die nächste zahl erfragen, nachdem die alte Eingabe ins Array eingetragen wurde.
Wenn ich jedoch immer und immer wieder beispielsweise die Zahl 1 eintippe, speichert er die das erste mal ab, beim zweiten mal fordert er eine neue Eingabe und beim 3. mal speichert der die 1 in das nächste Array Feld... Danach fordert er 2 mal eine neue eingabe, danach trägt er wieder eine ein, danach will er 3 mal eine neue Eingabe und die danach speichert er wieder ab und am ende kommt 1111111111 raus... und genau das DARF nicht passieren -.-
Die Ausgabe sieht dann so aus:
Bitte geben Sie 10 Ganzzahlenein:
Bitte geben Sie nun ihre erste Zahl ein: 1
Bitte geben Sie die nächste Zahl ein: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Bitte geben Sie die nächste Zahl ein: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Bitte geben Sie die nächste Zahl ein: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Bitte geben Sie die nächste Zahl ein: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Bitte geben Sie die nächste Zahl ein: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: 1
Bitte geben Sie die nächste Zahl ein: 1
und so weiter.
Der Code ist bis jetzt Folgender:
Java:
import java.util.*;
public class Bubblesort {
public static void main(String[] args) {
String input;
int convinput;
int [] inputnumbers = new int [10];
//Eingabe
System.out.println ("Bitte geben Sie 10 Ganzzahlenein: ");
for(int i = 0; i<10; i++)
{
if (i==0)
{
System.out.printf ("Bitte geben Sie nun ihre erste Zahl ein: ");
}
else
{
System.out.printf ("Bitte geben Sie die nächste Zahl ein: ");
}
Scanner sc = new Scanner(System.in);
input = sc.nextLine();
convinput = Integer.parseInt(input);
//Überprüfung ob die Zahl bereits eingegeben wurde
boolean check = false;
while (check==false)
{
for (int o = 0; o <= i; o++)
{
if (convinput==inputnumbers[o]&&inputnumbers[o]!=0)
{
System.out.printf ("Diese Zahl hatten Sie schon verwendet! Bitte versuchen Sie es noch einmal: ");
Scanner sd = new Scanner(System.in);
input = sd.nextLine();
convinput = Integer.parseInt(input);
}
else
{
check=true;
}
}
}
inputnumbers[i] = convinput;
}
for (int i =0; i<10; i++)
{
System.out.print(inputnumbers [i]);
}
}
}
Ich überlege die Check funktion in ein andere Objekt auszulagern (ich habe bis vor kurzem nur prozedural in C programmiert)... allgemein hab ich eh das gefühl, dass mit meinem Programm im objektorientierten Sinne nicht alles so ist, wie es sein sollte... aber das ist ja erstmal nebensächlich.... Ich möchte ersteinmal das Problem bei der Eingabeüberprüfung lösen und werde im nachinein versuchen das Problem in Objekte umzubauen... die Methoden bleiben ja die selben dann... glaube ich... Vielleicht kann mir ja jemand helfen
Danke im vorraus
Benobi