Przeszukiwanie tablicy 2 wymiarowej

0

Witam

Po pierwsze. Wiem, że problem jest banalny, chciałbym poprosić więc żeby brać hackerska mnie nie zniszczyła. Otóż mam taką oto metodę.

 public boolean Search( int arr[][], int day, int time ){

       
         for ( int n = 8; n < arr.length; n++ ){
             for ( int j = 8; j< arr[j].length; j++){
         if (       arr[n][j] == day  && arr[n][j] == time ){

         return true ;
         }
       

     }
         }

           return false;
 }

jak widać wczytuje sobie tablice, dzień i czas. Loopuje i w ogóle, niby wszystko cacy ale całość działa [ zwraca true, czyli zajęty slot ] tylko wtedy kiedy dzień i godzina są takie same np. dzień 12 i godzina 12, a nie do końca oto mi chodzi. [ Chciałbym np. zarezerwuję sobie dnia 12 na godzinę 8 coś i metoda ma mi dla danych 12 i 8 zwrócić true ( zwraca false [ czyli okienko wolne ] ) ]. Wybaczcie zagmatwanie.

Wyprintfowałem tablicę i wartości się zapisują.

0

a nie przejrzyściej było by to zrobić z tablicami typu bool, wtedy po prostu sprawdzał byś czy tablica[day,time] = true / zajęte.

a i w Twojej pętli coś chyba namieszałeś. dlaczego godziny i dni lecą od 8?
czy to nie powinno być tak że.
if(arr[day,time]==0) return true / wolne

0

Ja bym do tego podszedł trochę inaczej. Zamiast dwuwymiarowej tablicy stworzył bym klasę, która odzwierciedlała by jeden z wymiarów tablicy i loopował po tablicy jednowymiarowej.

W tej wersji błąd leży w tym, że:
arr[n][j] == day && arr[n][j] == time
Czytamy jako element NJ jest równ day I NJ jest równy time. Wniosek time musi być równy day by zwrócić true.

0

nie nie pętla ma lecieć od 8, nie bardzo chcę mieszać z typami teraz, bo już pobudowałem parę innych metod w oparciu o tablice intowe

bóg wam w dzieciach dobrzy ludzie. Działa ! = )

0

Ale formatowanie to masz genialne...

1 użytkowników online, w tym zalogowanych: 0, gości: 1