Hej!
Pamiętam ze w instrukcji switch case można bylo wykonywać operacje jeżeli zmienna należała do jakiego przedziału np.
switch ($procent) {
case 10..20 : echo "bla vla"; // to nie zadziala
case 10...20 : echo "bla vla"; // to tez :/
...
}
No ale nie mogę sobie przypomnieć jak xD Oczywiście ze googlowalem ale nic nie mogę znaleźć :roll:
Proszę o pomoc
Airborn
(Airborn)
22 Październik 2008 18:01
#2
nie bardzo, możesz zrobić jedynie coś takiego:
switch ($procent) {10:11: 12: 13: 14: "raz";15:16: 17: 18: 19: "dwa";
ale to bez sensu ;) do operowania na liczbach z przedziałami należy stosować else if
Buu zawsze mi sie wydawala ze da sie takie cudo zrobic ehh to zle bo mam sporo warunkow i lepsze by bylo switch ale trudno
Dzieki Airborn zawsze mądrze odpowiesz xD
EDIT
Juz wiem skąd mi sie wzięło z tym switch w delphi sie tak dało
Airborn
(Airborn)
22 Październik 2008 18:23
#4
nie wiem w czym Ci przeszkadza ilość warunków, w przypadku else if będzie tego nawet mniej
Chodzi o to ze mam kolo 10 warunków to bym miał
switch () {
case // * 10
}
a tak mam
if(x) {} // * 10
Trzeba sie więcej opisać ale już przepisałem a wiec można zamknąć.
Airborn
(Airborn)
22 Październik 2008 19:57
#6
ech, nie masz więcej pisania:
switch ($a)
{
case: $a > 0 and $a =< 10;
//warunek 1
break;
case: $a > 10 and $a =< 20;
//warunek 2
break;
case: $a > 20 and $a =< 30;
//warunek 3
break;
case: $a > 30 and $a =< 40;
//warunek 4
break;
}
pomijając bezsensowność zapisu porównaj długość z:
if( $x > 0 and $x =< 10)
//warunek1
else if( $x > 10 and $x =< 20)
//warunek2
else if( $x > 20 and $x =< 30)
//warunek3
else if( $x > 30 and $x =< 40)
//warunek4
15:8 w ilości linii kodu