C# kako naštevati z switch case?

Pozdravljeni.

Zanima me kako bi naredil to stvar pravilno saj mi tukaj javlja, da pač 9-tka že obstaja v enemu statmen-tu.

switch (ATime.Minute)
            {
                case (0-9):
                    lMinutes = 0;
                    break;

                case (10-19):
                     lMinutes=1;
                    break;

                case 20-29:
                    lMinutes=2;
                    break;

                case 30-39:
                    lMinutes=3;
                    break;

                case 40-49:
                    lMinutes=4;
                    break;

                case 50-59:
                    lMinutes=3;
                    break;

Bi moral vsako posebej?
Tako recimo:

case 1:
          lMinutes=0;
break;

case2:
lMinutes0;
break;

in tako naprej

9 odgovorov

Kolikor sem gledal C# ne podpira range v switch stavku.

Se pravi kako bi lahko to stvar izpeljal :)
Z if stavki?

LP

Oziroma lahko bi stvar šel tudi tako ali kaj ?

switch (ATime.Minute)
            {
                case 1:
                    lMinutes = 0;
                    break;
                case 2:
                    lMinutes = 0;
                    break;
                case 3:
                    lMinutes = 0;
                    break;
                case 4:
                    lMinutes = 0;
                    break;
                case 5:
                    lMinutes = 0;
                    break;
                case 6:
                    lMinutes = 0;
                    break;
                case 7:
                    lMinutes = 0;
                    break;
                case 8:
                    lMinutes = 0;
                    break;
                case 9:
                    lMinutes = 0;
                    break;
                case 10:
                    lMinutes = 1;
                    break;
                case 11:
                    lMinutes = 1;
                    break;
                case 12:
                    lMinutes = 1;
                    break;
                case 13:
                    lMinutes = 1;
                    break;
                case 14:
                    lMinutes = 1;
                    break;
                case 15:
                    lMinutes = 1;
                    break;
                case 16:
                    lMinutes = 1;
                    break;

Z if stavki bom zadeva najlažje pa po moje najbolj pregledno narejena.

sedaj mene malo zmede:
case 50-59: lMinutes=3;
zakaj je tukaj 3?

če je tukaj 5 nehi komplicirat in naredi deljenje z 10 :)
0-9 deljeno z 10 = 0
10-19 deljeno z 10 = 1
... :)

1

bostjan:
sedaj mene malo zmede:
case 50-59: lMinutes=3;
zakaj je tukaj 3?

če je tukaj 5 nehi komplicirat in naredi deljenje z 10 :)
0-9 deljeno z 10 = 0
10-19 deljeno z 10 = 1
... :)

Ja tam bi moralo biti 5 ne 3, se opravičujem ;)

no potem je pa simpl :)
lMinutes = ATime.Minute/10;

1

Ja sem malo pogledal in dejansko ni možen range v switch stavku. Dejansko ti naredi odštevanje 0-9 = -9, in zato se ti potem v tretjem koraku mislim da izračun pojavi zopet na 9 in ti zajamra da maš dvakrat 9 kot case.

Če tistole kar je napisal bostjan ne zadovolji tvojih potreb. Poglej tole:

http://stackoverflow.com/questions/11339191/switch-case-check-ranges-in-c-sharp-3-5

1

Hvala vsem, mi bo vse prišlo prav tako da hvala forumaši!!