---
title: "Smartare case?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/59323-smartare-case"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jesper T"
published: "2002-11-17T12:06:44.000Z"
updated: "2002-11-17T22:46:15.000Z"
replies: 2
views: 197
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/59323-smartare-case"
---

# Smartare case?

## #1 — Jesper T, 2002-11-17T12:06Z

Jag undrar om det går att skapa någon smartare funktion eller case för en  if-sats som denna?

```
if strTyp ="d" and intSel = "W" then
Antal=intAntal*7
elseif strTyp="ww" and intSel ="W" then
Antal=intAntal
elseif strTyp="ww" and intSel="M" then
Antal=intAntal*4
elseif strTyp="d" and intSel="M" then
Antal=intAntal*31
elseif strTyp="m" and intSel="M" then
Antal=intAntal
elseif strTyp="m" and intSel="W" then
Antal=intAntal*4
end if
```

Permalänk: https://www.webforum.nu/p/59323

## #2 — LarsG, 2002-11-17T15:53Z

Smartare, i vilket avseende då? Prestanda?

Med en så pass enkel kod som denna så har det ingen större betydelse vilken typ av konstruktion man använder. Det viktigaste är läsbarhet och att koden är lätt att förstå. Personligen tycker jag att det är tydligare att skriva så här

```
select case intsel
   case "W"
      select case strtyp
        case "d"               Antal=intAntal*7
        case "ww"           Antal=intAntal
         case "m"             Antal=intAntal*4
      end select
  case "M":
     select case strtyp
        case "d"               Antal=intAntal*31
        case "ww"            Antal=intAntal*4
         case "m"             Antal=intAntal
      end select
end select
```

(Frånsett indenteringen.)

Permalänk: https://www.webforum.nu/p/859418

## #3 — Jesper T, 2002-11-17T22:46Z

Tack, min tanke var att få det så optimerat som det går. Det blev så här:

```
select case intSel
  case "datDay"
     select case strTyp
        case "d"   Antal=intAntal
        case "ww"  Antal=intAntal/7
        case "m"   Antal=intAntal/31
end select
   case "datWeek"
   select case strTyp
        case "d"   Antal=intAntal*7
        case "ww"  Antal=intAntal
        case "m"   Antal=intAntal/4
  end select
  case "datMonth"
     select case strTyp
        case "d"   Antal=intAntal*31
        case "ww"  Antal=intAntal*7
        case "m"   Antal=intAntal
end select
end select
```

Hoppas att det blir rätt nu.

Permalänk: https://www.webforum.nu/p/859656

---

Tråden på webben: https://www.webforum.nu/amne/asp/59323-smartare-case
