Avatar billede axkris Nybegynder
09. april 2004 - 11:07 Der er 6 kommentarer og
1 løsning

Ombygge til løkke

Hej

Er der ikke en, som kan ombygge dette til en sej, lille, effektiv løkke i stedet for denne skod-kode?

    do while i < 2
        randomize
        ranValue = int(100 * rnd) + 1

        if ranValue > 60 then
            strTrin = 9
        else
            if ranValue > 45 then
                strTrin = 8
            else
                if ranValue > 35 then
                    strTrin = 7
                else
                    if ranValue > 30 then
                        strTrin = 6
                    else
                        if ranValue > 25 then
                            strTrin = 5
                        else
                            if ranValue > 20 then
                                strTrin = 4
                            else
                                if ranValue > 15 then
                                    strTrin = 3
                                else
                                    if ranValue > 10 then
                                        strTrin = 2
                                    else
                                        if ranValue > 5 then
                                            strTrin = 1
                                        end if
                                    end if
                                end if
                            end if
                        end if
                    end if
                end if
            end if
        end if
          loop
Avatar billede repsak Nybegynder
09. april 2004 - 11:18 #1
jeg kender ikke asp så godt, men normalt ville man nok lave en switch (kan man det i VB?)
Avatar billede -master-d- Nybegynder
09. april 2004 - 11:29 #2
Du ville bruge elseif.

<%
    do while i < 2
        randomize
        ranValue = int(100 * rnd) + 1

        if ranValue > 60 then
            strTrin = 9
        elseif ranValue > 45 then
            strTrin = 8
        elseif ranValue > 35 then
            strTrin = 7
        elseif ranValue > 30 then
            strTrin = 6
        elseif ranValue > 25 then
            strTrin = 5
        elseif ranValue > 20 then
            strTrin = 4
        elseif ranValue > 15 then
            strTrin = 3
        elseif ranValue > 10 then
            strTrin = 2
        elseif ranValue > 5 then
            strTrin = 1
        end if
    loop
%>

Så er den lidt nemmere at overskue, men gør akkurat det samme. Man har ikke switch i VBScript, men derimod har man case.
Avatar billede -master-d- Nybegynder
09. april 2004 - 11:31 #3
Iøvrigt kommer den der så ikke med et stak overflow?? Du er jo uendelig...
Avatar billede axkris Nybegynder
09. april 2004 - 11:32 #4
Takker.... gad vide om reg.exp. kunne lave koden endnu mindre?

overflow.. nej, fordi jeg har ikke vist hele tiden. Der er taget højde for det.
Avatar billede -master-d- Nybegynder
09. april 2004 - 11:51 #5
Nej, reg.exp, med reg.exp ville du stadig have behov for en lykke efter du har fundet de matchende værdier.

nu tænkte jeg bare om du ikke skulle give i en ny værdi ellers står den jo bare og looper konstant.
Avatar billede axkris Nybegynder
09. april 2004 - 11:55 #6
Har ordnet det - takker for hjælpen :-D
Avatar billede -master-d- Nybegynder
09. april 2004 - 11:57 #7
det var så lidt.
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
Kurser inden for grundlæggende programmering

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