Skocz do zawartości

iloczyn logiczny


Urizen

Recommended Posts

Witam. Czy ktoś mi może wyjaśnić co jest nie tak z następującym kodem:

(48<mouseX && mouseX<60) && (48<mouseY && mouseY<60) ? g.fillOval(48, 48, 12, 12) : g.fillOval(50, 50, 8, 8);

wiem, że to coś z koniunkcją w wyrażeniu ale o co dokładnie chodzi? Zastąpiłem to wyrażenie następującą konstrukcją:

if(mouseX<60&&mouseX>48){
        if(48<mouseY && mouseY<60) {
            g.fillOval(48, 48, 12, 12);
        }else g.fillOval(50, 50, 8, 8);
    }else g.fillOval(50, 50, 8, 8);

w tym wypadku działa, choć jest mniej elegancko. I jeszcze pytanie: czy można jakoś efektywniej sprawdzić czy dana zmienna liczbowa zawiera się w danych granicach? Bo takie coś raczej nie przejdzie :D :

if(48<mouse<60) {...}
Link do komentarza
Udostępnij na innych stronach

  • 6 months later...

Część warunkowa w Twoim wyrażeniu jest poprawna, czyli koniunkcja jest dobrze napisana. Błąd jest w składni wyrażenia, gdyż brakuje elementu, który będzie wykonany jeśli warunek nie będzie spełniony.

Poprawna forma wygląda następujoco:

warunek ? wyrażenie1 : wyrażenie2

Jak widzisz u Ciebie brakuje ostatniej części, jak ją dopiszesz to nie będziesz miał błędu.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...