Skocz do zawartości

Recommended Posts

Napisano

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) {...}
  • 6 months later...
Napisano

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.

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...