[PHP] Instrukcja Switch Case przedzial liczb


(Krzkaczor) #1

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) #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

(Krzkaczor) #3

Buu zawsze mi sie wydawala ze da sie takie cudo zrobic :confused: ehh to zle bo mam sporo warunkow i lepsze by bylo switch ale trudno :slight_smile:

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 :slight_smile:


(Airborn) #4

nie wiem w czym Ci przeszkadza ilość warunków, w przypadku else if będzie tego nawet mniej


(Krzkaczor) #5

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) #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