Avatar billede m_k_l Nybegynder
17. juni 2003 - 13:39 Der er 20 kommentarer og
1 løsning

Switch - case

Ligesom man i VB kan skrive:

Switch var
case 1 to 4
  Handle case

(Beklager pseudo koden, har ikke helt styr på syntaksen i VB :-/)

Må der vel også findes tilsvarende i C#, hvor man kan samle flere muligheder under én case ???

Jeg kan bare ikke finde noget om emnet, derfor HJÆLP !!!
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 13:42 #1
switch (var)
{
  case værdi1:
    handle case;
    break;
  case værdi2:
    handle case;
    break;
  default:
    handle default;
    break;
}
Avatar billede m_k_l Nybegynder
17. juni 2003 - 13:42 #2
Er det virkeligt nødvendigt at bruge en "if sætning" ???
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 13:43 #3
sorry, jeg læste ikke korrekt (AFAIR):

switch (var)
{
  case værdi1:
  case værdi2:
  case værdi3:
  case værdi4:
    handle case;
    break;
}
Avatar billede m_k_l Nybegynder
17. juni 2003 - 13:45 #4
Er med på hordan man skriver en alm switch, men hvordan lægger man f.eks. værdi1 og værdi2 ind i samme case ???

switch(var)
{
case værdi1 "to" værdi2:  //f.eks. 1 - 4.
handle case;
break;
}
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 13:45 #5
Se sidste indlæg:
Avatar billede m_k_l Nybegynder
17. juni 2003 - 13:46 #6
Jeps, kender fall through metoden, men det er mange linier når det gælder 1 - 40......
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 13:47 #7
der er ikke andre muligheder :-(
Avatar billede m_k_l Nybegynder
17. juni 2003 - 13:47 #8
Findes der ikke et "to keyword" ???
Avatar billede m_k_l Nybegynder
17. juni 2003 - 13:48 #9
Kan det virkelig passe at VB kan mere end C# på dette område....sørgeligt ;-)
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 13:48 #10
Nej. Prøv at læse i MSDN

Og selv om du ikke kan lide mit svar, skal du ikke afvise et rigtigt svar.
Avatar billede soreno Praktikant
17. juni 2003 - 13:50 #11
Måske det var smartere, i dette tilfælde, at holde dig til en if sætning, noget ala:

if(var>=1 && var<=40)
{
  //do stuff
}

(Ovenstående er muligvis ikke korrekt c# syntaks..)
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 13:51 #12
Avatar billede repsak Nybegynder
17. juni 2003 - 16:08 #13
som sagt: Du KAN ikke lave en 'fra x til y' når vi snakker switch/case i C#. if-statements er det eneste rigtige. Forstår altså heller ikke hvorfor det er så slemt at bruge if (???)
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 16:11 #14
Fordelen med switch/case er, at du kan have irregulære grupper. Forestil dig, at du skulle have 1 til 5, 8 til 10, 15 til 20, 25 til 31 samt 37 til 40.

What an if :-)
Avatar billede bennytordrup Nybegynder
17. juni 2003 - 16:13 #15
Med switch/case bliver det:

switch (var)
{
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 8:
  case 9:
  case 10:
  case 15:
  case 16:
  case 17:
  case 18:
  case 19:
  case 20:
  case 25:
  case 26:
  case 27:
  case 28:
  case 29:
  case 30:
  case 31:
  case 37:
  case 38:
  case 39:
  case 40:
    handle case;
    break;
}
Avatar billede repsak Nybegynder
17. juni 2003 - 17:28 #16
hehe somom at switch/case bliver meget kønnere ;-)
Avatar billede nielslbeck Nybegynder
17. juni 2003 - 22:28 #17
Der er vist ikke så meget andet at gøre, end at acceptere svaret - eller lave en DLL i VB med din switch (og stadig acceptere) ;-)
Avatar billede bennytordrup Nybegynder
18. juni 2003 - 08:28 #18
repsak >> Det er jo en smagssag:

if ((var>=1 && var<=5) || (var>=5 && var<=10) || (var>=15 && var<=20) || (var>=25 && var<=31) || (var>=37 && var<=40) )
{
  //do stuff
}
Avatar billede bennytordrup Nybegynder
18. juni 2003 - 08:28 #19
Hvad er mest læsevenligt?
Avatar billede repsak Nybegynder
18. juni 2003 - 09:53 #20
benny.tordrup -> Ja helt sikkert, det er en smagssag. Men som du måske har luret så synes jeg at 'if' er lettere at læse. Om ikke andet kan man stoppe en lille kommentar ind hvis det blirfor kompliceret... Men det er en detalje :-)
Avatar billede cyberzed Nybegynder
19. juni 2003 - 09:34 #21
Ellers nøjes med at lave særtilfældene og så fang 1-40 på default:
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester