Skocz do zawartości

Switch, czy jak mu tam...


Exigo

Rekomendowane odpowiedzi

Już ktoś zarzucił podobny kod... ale i tak wszystko się mija z celem bo mi potrzebne jest tylko i wyłącznie "&&" - w switchu rzecz jasna. Zresztą, problem jest "rozwiązany"... oczywiście w if'ach. Zapewne wiadomo ile linijek zajął mi ten kod.

@Pental: Gdy by się udało rozwiązać ten problem, switch by pasował jak tralala.

Odnośnik do komentarza
Udostępnij na innych stronach

A jakie znaczenie linijki mają, skoro znak nowej linii to tzw. biały znak? Czyli spacje też liczysz :) ? Mówię, switch polecam używać do konkretnych wartości, najlepiej liczb, tak jest najprościej. Jeśli chcesz używać operatorów logicznych, to używaj ifa.

 

A, i mam pytanie, jak dużo tych porównań było? (chodzi mi o to, ile operatorów tych użyłeś użyłeś)

 

Jeśli to już taki problem, to napisz funkcję do i wsadź kod:

// argument 0 - warunek 1
// argument 1 - warunek 2
// argument 2 - kod, jesli sie warunki spelnia
operator = '||';
str = 'if ( ';
str += argument[ 0 ] + ' ' + operator + argument[ 1 ] + ' ) ' + argument[ 2 ];
execute_code( str );

A używasz tak:

do( <warunek1>, <warunek2>, <kod, jesli obydwa warunki polaczone operatorem || zwracaja prawde> )

Odnośnik do komentarza
Udostępnij na innych stronach

Jeny, po prostu daję Kubie radę, iż to jest na dłuższą metę niewydajne - jakby tego nie wiedział.

Niech sobie chłopka przeanalizuje plusy i minusy i sam stwierdzi, czy warto tego używać.

Ty wskazałeś plusy (1 - wygoda), ja musiałem wskazać minus (też jeden - wydajność (choć to akurat wina GM'a)).

 

Ja nie lubię rozpoczynać "flamewarów" - to wy lubicie je znajdować w moich postach... :)

 

PS: Tymon, fajny opis :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

a co za problem połączyć switch z if ?

GML
switch moj_warunek

{

case 1: if warunek==2 { <costam> }; break;

case 3: if warunek==4 { <costam> }; break;

}

lub jeżeli case może się powtarzać:

GML
switch moj_warunek

{

case 1: if warunek==2 { <costam>; break; }

case 1: if warunek==3 { <costam>; break; }

case 1: if warunek==4 { <costam> break; }

/* Tak samo w sumie było by:

case 1: if warunek==2 { <costam>; } else if warunek==3 { <costam>;} else if warunek==4 { costam> } break;

*/

}

 

Bo przypominam, że to BREAK powoduje zakończenie sprawdzania warunków switch, więc jezeli nie wejdziemy w klamerki, to sprawdzi następne :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...