G
Guest
Gast
hallo
ich habe ein problem mit einer for schleife.
diese for schleife ist in einer methode, welche mir immer die position des nächsten wahren wertes zurückgibt.
es darf aber nie zwei Mal die gleiche position im array zurückgegeben werden, desshalb zähle ich die variable pos hoch und beginne beim nächsten versuch ab der position pos zu suchen.
ist das ende des arrays erreicht, sollte die suche wieder von vorne beginnen, sprich wieder vom anfang des arrays an beginnen.
ist kein wert im ganzen array true, sollte -1 zurückgegeben werden.
irgendwie stoppt aber die for schleife.
ich habe das folgendermassen versucht, bin mir aber nicht sicher ob das so korrekt ist:
wenn z.B. im booleanarray die felder arr[40], arr[41],arr[42], arr[43],arr[44], arr[45],arr[46], arr[47] true sind, sollte die methode immer 40,41,42,43,44,45,46,47,40,41,42,43,44,45,46,47,40,41,42,43,44,45,46,47 etc zurückgeben!
weiss jemand, wo das problem liegt?
grüsse
ich habe ein problem mit einer for schleife.
diese for schleife ist in einer methode, welche mir immer die position des nächsten wahren wertes zurückgibt.
es darf aber nie zwei Mal die gleiche position im array zurückgegeben werden, desshalb zähle ich die variable pos hoch und beginne beim nächsten versuch ab der position pos zu suchen.
ist das ende des arrays erreicht, sollte die suche wieder von vorne beginnen, sprich wieder vom anfang des arrays an beginnen.
ist kein wert im ganzen array true, sollte -1 zurückgegeben werden.
irgendwie stoppt aber die for schleife.
ich habe das folgendermassen versucht, bin mir aber nicht sicher ob das so korrekt ist:
Code:
int pos = 0;
boolean[] arr = new boolean[100];
private int getPos(){
for (int i = pos; i < arr.length; i++) {
if (pos >= arr.length-1) {
// reset the reading position
pos = 0;
}
pos++;
// check if the array element is true
if (arr[i]) {
return i;
}
}
return -1;
}
wenn z.B. im booleanarray die felder arr[40], arr[41],arr[42], arr[43],arr[44], arr[45],arr[46], arr[47] true sind, sollte die methode immer 40,41,42,43,44,45,46,47,40,41,42,43,44,45,46,47,40,41,42,43,44,45,46,47 etc zurückgeben!
weiss jemand, wo das problem liegt?
grüsse